命令行模式
-
显示历史命令
q:
再输入 / 可查找命令 -
转到文本模式
a:插到当前字符后面
A:跳到行尾
i :插入当前位置
I :跳到行首
o:下一行
O:上一行
s:删除光标后面的字符
S:删除一整行 -
移动
Ctr+e :向下翻行
Ctr+y :向上翻行
Ctr+f :向下翻页
Ctr+b :向上翻页z + enter:移动光标所在的行移动到屏幕顶部
z + .:移动光标所在的行移动到屏幕中央
z + -:移动光标所在的行移动到屏幕尾部
n+z+Enter:将第n行移动到屏幕顶部,同样的,z. 与 z- 前也可以加数字
gg:移动到第一行的第一个字符
G:移动到最后一行
$:移动到行末
0:移动到行首
n G:移动到指定的n行
n(h j k l):向上下左右移动 多行/字符
‘’:(双击 l 右边的符号)回到上次跳转处
w:下一个单词
b:上一个单词
H:跳到当前页的第一行第一个字符
M:跳到当前页的中间行第一个字符
L:跳到当前页的最后一行第一个字符
[ [:跳到光标上一个函数的开始处,如果在函数内,跳到当前函数的开始处
] ]:跳到下一个函数的开始处
] [:跳到光标下一个函数的结尾,如果在函数内部,跳到当前函数的结尾
[ ]:跳到上一个函数的结尾 -
删除(实际是剪切,可p进行复制)
dw:删除光标后面一个单词
db:删除光标前面一个单词
daw:删除光标所在的单词d0:删除光标到行首
D / d$:删除光标到行末X:删除前面的字符
x:删除后面的字符dd:删除一整行
ndd:删除当前行下面的n行
dnG:删除当前行到第n行 -
撤销、反撤销
u :撤销
Ctr+r:反撤销 -
复制、粘贴
yaw:复制当前单词
yy:复制当前行
nyy:复制当前行(包含当前行)以下的n行
P:在当前行上面粘贴
p:在当前行下面粘贴 -
查找
/ 或者? 查找的内容 ,n下一个,N上一个
光标移到要找的内容 按#:向上查找
光标移到要找的内容 按*: 向下查找 -
替换
r+需要替换的一个字符:将当前字符替换成其他字符 -
可视模式
v进入,选择需要的复制删除的部分,按y复制,d删除
P:粘贴到光标前面
p:粘贴到光标后面 -
缩进
<<
>> -
查看man文档
光标移动到函数名上按:
K:在man文档查看当前的函数
2K:在man 2 中查看当前的函数
文本模式
-
转到命令行模式
Esc 或者 Ctr+c 或者 Ctr+[ -
编辑
Ctr+h :删除前面一个字符
Ctr+w :删除前面一个单词
Ctr+u :删除至行首
末行模式(在命令行输入:)
-
加密
加密文件 :X->输入密码->退出保存
解密文件:通过密码打开文件之后-> :X -> 连续两次回车 -
查找替换
:s/tom/jack/g : 当前行所有tom替换成jack
:27,30s/tom/jack/g :27,30行所有tom替换成jack
:%s/tom/jack/g : 当前文档所有tom替换成jack
:如果不加g的话只是行的第一个替换 -
分屏
:sp :水平分屏 当前文件
:vsp :垂直分屏 当前文件
:vsp+文件路径 :垂直分屏 其他文件:vertical res 50:光标所在文件占50%
:res 50 (默认横屏) -
执行命令
:!+命令
多个终端下vim之间 粘贴复制
方法一:
在.vimrc中添加以下代码
"--- 跨终端粘贴
let g:copy_file=$HOME . "/.vim_copybuffer"
function Write_copy_file()
"本函数将 @" 缓冲区内容写入文件
let lines=split(@", "\n")
call writefile(lines,g:copy_file)
endfunction
function Read_copy_file()
"将copy_file文件写入@" 缓冲区,并且粘贴
let l:buf=readfile(g:copy_file)
let @"=join(l:buf,"\n")
normal ""p
endfunction
nmap <silent> ;y :call Write_copy_file()<CR>
nmap <silent> ;p :call Read_copy_file()<CR>
使用:
- 选中内容,按下 "+y 三个键将内容加入到"寄存器中 :reg可以查看
- 再按 ;y 两个键复制到buffer
- 在另一个终端中打开vim,按下;p两个按键 进行粘贴
方法二(推荐):
-
先查看vim对clipboard的支持,
vim --version | grep clipboard
默认的vim不支持clipboard
-
如果前面是 - 号而不是+号,代表不支持,需要自行安装
sudo apt-get install vim vim-scripts vim-gtk vim-gnome
。 -
使用 "+y 三个建复制, "+p 三个键粘贴
可以在.vimrc 中进行映射:
"copy ,paste 之后 光标移到后面
vmap <C-c> "+y
nmap <C-v> "+gp
" 原来的Ctr+v是 块选择,需要重新map,注意使用非递归,否则将映射到"+gp
nnoremap <leader>v <C-v>