vim技巧
近来写程序时候发现比较为会常用到的我都我把它记录下来拉
++++++++++++++++++++++++++++++++++++++++++++
一个窗口同时打开多个文件浏览
:vs file
++++++++++++++++++++++++++++++++++++++++++++
上下两行合并 shift+j
++++++++++++++++++++++++++++++++++++++++++++
修改命令操作c l 更改当前字符
c w 修改到某个单词的结尾位置
c 3 w 修改到第三个单词的结尾位置
c b 修改到某个单词的开始位置
c W 修改到某个以空格作为分隔符的单词的结尾位置
c B 修改到某个以空格作为分隔符的单词的开始位置
c 7 B 修改到前面7个以空格作为分隔符的单词的开始位置
c 0 修改到某行的结尾位置
c) 修改到某个语句的结尾位置
c 4) 修改到第四个语句的结尾位置
c( 修改到某个语句的开始位置
c } 修改到某个段落的结尾位置
c { 修改到某个段落的开始位置
c 7 { 修改到当前段落起始位置之前的第7个段落位置
c tc 修改当前行直到下一个字符c所出现位置之间的内容
C 修改到某一行的结尾
c c 修改当前行
5 c c 修改从当前行所开始的5行内容
++++++++++++++++++++++++++++++++++++++++++++++++
快速定位H 跳到第一行
M 跳到中间一行
L 跳到最后一行
++++++++++++++++++++++++++++++++++++++++++++++++
行复制
复制
起初行ma 结束行y'a 粘贴行 pp
剪贴
起初行ma 结束行d'a 粘贴行 pp
剪切
shift +v 选定要到行后 ctrl+x 粘贴行pp
shift +v 选定要到行后 ctrl+x直接进入编辑模式修改文件 要粘贴进入命令模式到粘贴行pp
命令模式
:1,10 co 50
光标在1行输入ma在10行输入mb在50行输入mc,然后命令:'a,'b co 'c
剪切则将刚刚到co改为m
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
ZQ 相当于:q!,无条件退出
ZZ 相当于:wq,保存退出
:%!nl -ba 全文加上编号,如不加-ba则空行不计算在内。
m[a-z] 做标记[a-z]
'[a-z] 跳到标记[a-z]
Ctrl+} 下一个空行
+++++++++++++++++++++++++++++++++++++++++++++++++++
折叠功能
zf 代码折叠,需要选中
Ctrl+o 还原
还有set tags=./tags,(其它tags),索引的顺序跟这里的先后顺序有关。
如果在Insert模式下想选中一段文本该怎么做呢?
和都不管用啊,别急,用可进入(Insert)模式,这个时候在用或进行块选定。
+++++++++++++++++++++++++++++++++++++++++++++++++++++
如何选中括号中的内容 进行:
将光标移至括号内,按shift+v进入行选模式,然后
i{ - 选小括号中内容,不包括小括号
a{ - 选小括号中内容,包括小括号
ib - 选中括号中内容,不包括括号
ab - 选中括号中内容,包括括号
i{ - 选大括号中内容,不包括大括号
a{ - 选大括号中内容,包括大括号
:h text-objects
下面还有些相关的tips,未全部验证:
vi{ 选中{}中间的内容,不包括{}
va{ 选中{}中间内容,包括{}
vi( 选中()中间内容
vi< 选中<>中间内容
vi[ 选中[]中间内容
vit 选中中间的内容
vi" 选中""中间内容
vi' 选中''中间的内容
vis 选中一个句子
vib 选中一个block
viw选中一个单词
vip 选中一个段落
...
++++++++++++++++++++++++++++++++++++++++++++++++++++
tags 用法
在函数中移动光标
[{ 转到上一个位于第一列的"{"
}] 转到下一个位于第一列的"{"
{ 转到上一个空行
} 转到下一个空行 ([ and ] 也分别是两个指令)
ctrl+t 跳回
gd 转到当前光标所指的局部变量的定义
* 转到当前光标所指的单词下一次出现的地方
# 转到当前光标所指的单词上一次出现的地方
Vim 的创造者是一名计算机程序员,因此这就不奇怪 Vim 中有许多帮助编写程序的功能:
跳转到标识符被定义和使用的地方;在另一个窗口中预览有关的声明等等。
阅读(3119) | 评论(0) | 转发(0) |