一些常用的vim指令和技巧
h 左,j 下, k 上, l 右
x 删除当前光标后的一个字符
i 在当前光标插入
u 撤销一次操作
ctrl + r 重复上一次操作
w 向右移动一个词首
b 向左移动一个词首
e 向左移动到一个词末
ge 左右移动到一个词末
W 向右移动到句首
B 向左移动到句首
E 向右移动到句末
gE 向左移动到句末
^ 行首
$ 行尾
f + 字母,当前行,当前光标向左定位到指定字母处(常用操作)
F + 字母,当前行,当前光标向右定位到指定字母处
% 匹配括号
数字 + gg,定位到数字行
数字 + %,定位到占全文百分之数字的行
ctrl + f,向下翻页
ctrl + b,向上翻页
/字符串,以当前光标为基准,向下全文查找字符串,支持正则表达式
?字符串,以当前光标为基准,向上全文查找字符串,支持正则表达式
c,修改,即删除文本后,进入插入模式
v,进入可视模式
y,拷贝内容
split/vsplit 将一个文件切成两个的窗口,合理利用屏幕资源(默认是横着分,vsplit是垂直分)
ctrl + w 在多个窗口间切换
:qall 退出所有窗口
比较两个文件的差异,vimdiff
do 获取右边与左边不一样的(diff obtain)
dp 将左边的放到右边(diff put)
:s/target/replace/g 替换当前行的target字符串到replace,/g指的是同一行内多次匹配
:1,5s/target/replace/g 替换第一行到第五行中的target字符串到replace
:%s/target/replace/g 替换整个文件中的target字符串到replace,/g表示整行
:s/ ([^,]*) , (.*) /2 1/g 反向引用,将第一个和第二个正则子表达式匹配的值置换下位子
g ctrl + g 显示字符数,字数,行和列
快速选中技巧: v + f 或 v + / 组合
gu / gU 小写/大写
:read 读一个文件到当前光标下 简写 :r
:write 写入另一个文件中 简写 :w
q: 指令历史记录
:[range]! xx 执行shell指令,比如 1,5!cat -n则,使1到5行加上行号
:tabedit 在同一个vim进程里,新建一个tab,共享寄存器和内存
gt 在tab间切换
c 当在前指令里忽略大小写,比如查找word的指令 /cword ,那么 word,Word,WORD都将匹配
:iabbrev 定义快捷字符串模板,比如 :iabbrev ad adverisement 那么在你进行编辑文本时,输入ad+空格,就会自动补全ad这个单词。如果要每次都是用,最好加到 vimrc 里.
使用 * 键可以向后搜索光标所在位置的单词。反之,使用 # 键可以向前搜索光标所在位置的单词。
使用 ga 可以看到光标下的字符的ASCII值。
用 xp 来交换两个字符,用 ddp 来交换两行。
使用如下命令给正在编辑的文件添加行号: :%!cat -n