简介
Vim是从 vi 发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。
简单的来说, vi 是老式的字处理器,不过功能已经很齐全了,但是还是有可以进步的地方。 vim 则可以说是程序开发者的一项很好用的工具。
连 vim 的官方网站 (http://www.vim.org) 自己也说 vim 是一个程序开发工具而不是文字处理软件。
参考文档:https://www.runoob.com/linux/linux-vim.html
环境配置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| cat >> ~/.vimrc << EOF "设置编码" set fileencodings=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936 set termencoding=utf-8 set encoding=utf-8
"显示行号" set nu
"显示括号匹配" set showmatch
"设置Tab长度为4空格" set tabstop=4 "空格替代制表符" set expandtab "设置自动缩进长度为4空格" set shiftwidth=4 "继承前一行的缩进方式,适用于多行注释" set autoindent
"启动粘贴模式" set paste
"括号自动补全" inoremap ' ''<ESC>i inoremap " ""<ESC>i inoremap ( ()<ESC>i inoremap [ []<ESC>i inoremap { {<CR>}<ESC>O
EOF
|
常用按键
第一部分:一般模式
移动光标
|
功能 |
h, j, k, l |
光标向左,下,上,右移动 |
Ctrl + f / b |
屏幕向下/上移动 |
Ctrl + d / u |
屏幕向下/上移动半页 |
0 |
移动到一行的最前面 |
$ |
移动到一行的最后面字符 |
H / M / L |
移动到屏幕最上方/中央/最下方那一行的第一个字符 |
G |
移动到文件的最后一行 |
nG / ngg |
移动到文件的第n行 |
gg |
移动到文件的第一行 |
n[Enter] |
向下移动n行 |
查找替换
|
功能 |
/ |
向下查找word字符串 |
? |
向上查找word字符串 |
n |
代表重复前一个查找动作 |
N |
代表反向重复前一个查找动作 |
: s// |
将第一个old替换为new |
: s///g |
将一行中所有的old替换为new |
:n1, n2s///g |
将行n1与n2之间的word1替换为word2 |
:%s///g |
将文件所有的old替换为new |
:%s///gc |
替换前要求确认 |
删除复制粘贴
|
功能 |
x/X |
向后/前删除一个字符 |
nx |
连续删除n个字符 |
dd |
删除整行 |
ndd |
删除n行 |
d1G |
删除光标所在到第一行数据 |
dG |
删除光标所在到最后一行数据 |
d$ |
删除光标所在到该行最后一个字符 |
d0 |
删除光标所在到该行最前面一个字符 |
yy |
复制光标所在的一行 |
nyy |
向下复制n行 |
y1G |
复制光标所在到第一行数据 |
yG |
复制光标所在到最后一行数据 |
y$ |
复制光标所在到该行最后一个字符 |
y0 |
复制光标所在到该行最前面一个字符 |
p/P |
粘贴数据在光标下/上一行 |
J |
将光标所在行与下一行数据结合成同一行 |
u |
回撤前一操作 |
Ctrl + r |
重做前一操作 |
. |
重复前一个操作 |
第二部分:编辑模式
进入插入或替换的编辑模式
|
功能 |
i, I |
进入插入模式: i从当前光标所在处插入,I在目前所在行的第一个非空格符处插入 |
a, A |
进入插入模式: a从当前光标所在的下一个字符插入,A从光标所在行的最后一个字符后插入 |
o, O |
进入插入模式: o从当前光标所在行的下一行插入新的一行;O正好相反,从上一行插入新行 |
r, R |
进入替换模式: r只会替换光标所在的那一个字符一次;R会一直替换光标所在文字,直到Esc |
块选择
|
功能 |
v |
字符选择,将光标经过的地方反白选择 |
V |
行选择,将光标经过的行反白选择 |
Ctrl + v |
块选择,可以用长方形选择数据 |
y |
将反白的地方复制 |
d |
删除反白的地方 |
多窗口
|
功能 |
:sp filename |
打开新窗口,如果有加filename,新窗口打开新文件,否则打开相同文件 |
Ctrl + w + s/v |
水平/垂直分割打开新窗口 |
Ctrl + w + h/j/k/l |
光标移动到左/下/上/右窗口 |
Ctrl + w + q |
退出窗口 |