vim学习笔记(一)—— vim安装方法
一、完全卸载vim的方法
sudo apt-get remove --purge vim (--purge 是完全删除,会连配置文件一起删除)
二、Vim前言——————“世界上只有三种编辑器,EMACS、VIM和其它”
三、Vim基础入门
1、光标在屏幕文本中的移动既可以用箭头键,也可以使用hjkl字母键
h(左移) j(上移) k(下移) l(右移)
2、进入vim编辑器方法:
vim 文件名
3、退出vim编辑器的方法:
<ESC> :q! <回车> 放弃所有改动退出
<ESC> :wq <回车> 保存改动退出
4、在正常模式下删除光标所在位置的字符
x
5、插入文本
i 输入插入文本(在光标处)
A 输入插入文本(在一行后添加文本)
6、删除
dw 从光标处删除到下一个单词
d$ 从光标处删除到当前行末尾
dd 删除整行
7、动作重复
operator [number] motion
8、光标移动到首行
0
9、撤销动作
u 撤销
U 撤销在一行所做的改动
ctrl-R 恢复撤销的结果
10、重新置入删除内容
p
11、替换
r 替换当前光标的字符
ce 替换当前光标到单词的末尾的内容
c$ 替换当前光标到行末的内容
12、光标跳转
CTRL-G 用于显示当前光标所在位置和文件状态信息
G 光标跳到文件最后一行
行号-G 先输入行号再输入G,则是将光标移动到该行号代表的行
gg 光标跳到文件到首行
13、查找
/ '+' 字符 正向查找该字符
?'+'字符 反向查找字符
n 重复正常执行查找字符串
N 重复反向执行查找字符串
CTRL-O 跳转回较旧位置
CTRL-I 跳转回较新位置
:nohl 取消高亮
14、括号匹配
%
15、替换字符串
s/old/new 在一行内替换第一个old字符串为new
s/old/new/g 在一行内替换所old为new
#,#/s/old/new/g 从#到#行内的所有old替换为new
%s/old/new/g 替换文件内的全部old为new
%s/old/new/gc 进行全文替换的时候询问用户确认每个替换需添加c标志
16、在vim中使用外部命令
:!command 执行一个外部命令command
:!ls 用于显示当前目录的内容
:!del filename 删除名字为filename的文件
17、文件间操作
:w FILENAME 将当前vim编辑的内容保存命名为FILENAME的文件中
v motion:w FILENAME 将当前编辑文件中可视模式下选中的内容保存到FILENAME中
:r FILENAME 提取磁盘文件FILENAME幷插入到当前文件的光标位置后面
:r !dir 可读取dir命令的输出幷放置到当前文件的光标位置后面
18、插入模式进入

19、光标移动
w 移动到下一个单词的首部
e 移动到当前单词的尾部
b 返回到上一个单词的首部
20、复制黏贴
y 复制文本
p 黏贴文本
21、替换模式
R
22、set xxx进行一些有用的设置
'ic' 'ignorecase' 查找时忽略字母的大小写
'is' 'incsearch' 查找短语时显示部分匹配
'hls' 'hlsearch' 高亮显示所有的匹配短语 在选项前加上'no’可以关闭选项 set noic
四、vim基础入门推荐教程
1、自带的vimtutor
2、http://coolshell.cn/articles/5426.html 简明VIM练级攻略
3、https://vim-adventures.com/ VIM大冒险
4、命令图解

五、插件管理神器vundle安装
链接:http://blog.csdn.net/zhangpower1993/article/details/52184581
1、安装vundle
git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim
2、配置说明
插件有三种类型:
1. Github上vim-scripts仓库的插件
2. Github上非vim-scripts仓库的插件
3. 不在Github上的插件
对于不同的插件,vundle自动管理和下载插件的时候,有不同的地址填写方法,有如下三类:
1. 在Github上vim-scripts用户下的仓库,只需要写出repos(仓库)名称
2. 在Github其他用户下的repos, 需要写出”用户名/repos名”
3. 不在Github上的插件,需要写出Git全路径
3、配置vundle插件
vim ~/.vimrc
4、vimrc样例
set nocompatible " 去除VI一致性,必须要添加
filetype off " 必须要添加 " 设置包括vundle和初始化相关的runtime path
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
" 另一种选择, 指定一个vundle安装插件的路径
"call vundle#begin('~/some/path/here') " 让vundle管理插件版本,必须
Plugin 'VundleVim/Vundle.vim' " 以下范例用来支持不同格式的插件安装.
" 请将安装插件的命令放在vundle#begin和vundle#end之间.
" Github上的插件
" 格式为 Plugin '用户名/插件仓库名'
Plugin 'tpope/vim-fugitive'
" 来自 http://vim-scripts.org/vim/scripts.html 的插件
" Plugin '插件名称' 实际上是 Plugin 'vim-scripts/插件仓库名' 只是此处的用户名可以省略
Plugin 'L9'
" 由Git支持但不再github上的插件仓库 Plugin 'git clone 后面的地址'
Plugin 'git://git.wincent.com/command-t.git'
" 本地的Git仓库(例如自己的插件) Plugin 'file:///+本地插件仓库绝对路径'
Plugin 'file:///home/gmarik/path/to/plugin'
" 插件在仓库的子目录中.
" 正确指定路径用以设置runtimepath. 以下范例插件在sparkup/vim目录下
Plugin 'rstacruz/sparkup', {'rtp': 'vim/'}
" 安装L9,如果已经安装过这个插件,可利用以下格式避免命名冲突
Plugin 'ascenator/L9', {'name': 'newL9'} " 你的所有插件需要在下面这行之前
call vundle#end() " 必须
filetype plugin indent on " 必须 加载vim自带和插件相应的语法和文件类型相关脚本
" 忽视插件改变缩进,可以使用以下替代:
"filetype plugin on
"
" 常用的命令
" :PluginList - 列出所有已配置的插件
" :PluginInstall - 安装插件,追加 `!` 用以更新或使用 :PluginUpdate
" :PluginSearch foo - 搜索 foo ; 追加 `!` 清除本地缓存
" :PluginClean - 清除未使用插件,需要确认; 追加 `!` 自动批准移除未使用插件
"
" 查阅 :h vundle 获取更多细节和wiki以及FAQ
" 将你自己对非插件片段放在这行之后
5、安装需要的插件
(1)将想要安装的插件,按照地址填写方法,将地址填写在vundle#begin和vundle#end之间就可以
(2)保存之后,有两种方法安装插件
A、运行 vim ,再运行 :PluginInstall
B、vim +PluginInstall +qall
6、移除不需要的插件
- 编辑.vimrc文件移除的你要移除的插件所对应的plugin那一行。
- 保存退出当前的vim
- 重新打开vim,输入命令
BundleClean
7、其他常用命令
- 更新插件
BundleUpdate - 列出所有插件
BundleList - 查找插件
BundleSearch
六、vim配置
1、无敌现成vim配置:https://github.com/spf13/spf13-vim/
curl https://j.mp/spf13-vim3 -L > spf13-vim.sh && sh spf13-vim.sh
2、很好的一篇博文:讲解常用配置,可惜太小白了,自己装一个都跑不起来,研究出来再做下笔记。
vim学习笔记(一)—— vim安装方法的更多相关文章
- vim学习笔记(2)——vim配置
记录vim的配置,随时更新 MacVim 安装: homebrew,安装位置:/usr/local/Cellar brew linkapps macvim--将macvim.app加入到Applica ...
- vim学习笔记(1)——vim操作
仅记录一些自己最经常使用的vim操作.随时更新 文本操作 d 剪切.双击剪切一行 y 复制,双击复制一行 p 粘贴 x 删除当前光标下字符 r 替换当前光标字符.后面接替换的字符 :s/old/new ...
- PHP学习笔记----IIS7下安装配置php环境
原文:PHP学习笔记----IIS7下安装配置php环境 Php如何安装 Php版本的选择 Php在windows下的(php5.4.7)有两种版本: VC9 x86 Non Thread Safe ...
- 【python学习笔记】9.魔法方法、属性和迭代器
[python学习笔记]9.魔法方法.属性和迭代器 魔法方法:xx, 收尾各有两个下划线的方法 __init__(self): 构造方法,创建对象时候自动执行,可以为其增加参数, 父类构造方法不会被自 ...
- Java8学习笔记(八)--方法引入的补充
在Java8学习笔记(三)--方法引入中,简要总结了方法引入时的使用规则,但不够完善.这里补充下几种情况: 从形参到实例方法的实参 示例 public class Example { static L ...
- openresty 学习笔记一:环境安装
openresty 学习笔记一:环境安装 openresty 是一个基于 Nginx 与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库.第三方模块以及大多数的依赖项.用于方便地搭 ...
- linux学习笔记:vim程序编辑器—vim的使用
注:以下是学习<鸟哥的linux私房菜>(第三版)的学习笔记,纯属个人学习记录. 2018-11-19 一.学习vim的原因 很多软件的编辑接口都会主动调用vi 二.vim的使用 (1)v ...
- 学习笔记之vim的使用
很多刚学习linux编程的人总是对vim有一种恐惧,我自己就是这么回事的. 可是当你努力的去尝试学习使用后,才发现它的精髓所在. 在我看来,让vim变得好用的前提是要安装两个插件,ctags和tagl ...
- vim学习笔记(10):vim命令大全
进入vim的命令: vim filename :打开或新建文件,并将光标置于第一行首 vim +n filename :打开文件,并将光标置于第n行首 vim + filename :打开文件,并将光 ...
- Linux学习笔记之VIM编辑器
此处根据需要,只罗列一些常用的指令和用法 五.VIM程序编辑器 Vi与vim Vi打开文件没有高亮注释,vim有,且vim是vi的高级版本 Vim默认打开文件为命令模式 i ...
随机推荐
- 轻松解决vuejs跨域
Vuejs跨域问题实战 有时候,本地使用webpack开启一个node的dev端口,项目中使用vuejs去访问别人家的api,比如豆瓣或者其他的api,不使用jsonp肯定就会报跨域的问题. 如何让我 ...
- Java程序猿的JavaScript学习笔记(1——理念)
计划按例如以下顺序完毕这篇笔记: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaScript ...
- Python脚本生成sitemap
项目须要用脚本生成sitemap,中间学习了一下sitemap的格式和lxml库的使用方法.把结果记录一下,方便以后须要直接拿来用. 来自Python脚本生成sitemap 安装lxml 首先须要pi ...
- 第六周 Word目录和索引
第六周 Word目录和索引 教学时间 2013-4-2 教学课时 2 教案序号 5 教学目标 能正确使用索引.目录等 教学过程: 复习提问 1.脚注和尾注的区别是什么?2.如何插入脚注和尾注?3.如何 ...
- 升级华为s2016
Part 1 升级Bootrom 概述:启动启动菜单,用xmodem协议升级BootRom 升级的文件如下: wnm2.2.3-0004.zip :web网管zip压缩包文件. S2008_16-VR ...
- Mina.Net实现的断线重连
using Mina.Filter.Codec; using Mina.Filter.Codec.TextLine; using System; using System.Collections.Ge ...
- 算法笔记_228:信用卡号校验(Java)
目录 1 问题描述 2 解决方案 1 问题描述 当你输入信用卡号码的时候,有没有担心输错了而造成损失呢?其实可以不必这么担心,因为并不是一个随便的信用卡号码都是合法的,它必须通过Luhn算法来验证 ...
- 操作系统动态内存管理——malloc和free的工作机制
动态内存分配 就 是指在程序执行的过程中动态地分配或者回收存储空间的分配内存的方法. malloc()是C语言中动态存储管理 的一组标准库函数之一.其作用是在内存的动态存储区中分配一个长度为size的 ...
- Linux内存管理(转)
一.内核空间 1.1 页 页(page)是内核的内存管理基本单位. ==> linux/mm_types.h struct page { page_flags_t flags; 页标志符 ato ...
- cocos2d-js 各浏览器上的表现
其实这里只简单对比3个浏览器,估计也足够代表性了. 结论是: 1.有webgl支持的时候,就可以尽情的耍吧: 2.没有webgl,能native就native.如果不行,就只能在canvas上做小块的 ...