VIM常用命令

原创
2017/08/11 22:54
阅读数 10

对标点内的内容进行操作

ci'、ci"、ci(、ci[、ci{、ci< - 分别更改这些配对标点符号中的文本内容

di'、di"、di(或dib、di[、di{或diB、di< - 分别删除这些配对标点符号中的文本内容

yi'、yi"、yi(、yi[、yi{、yi< - 分别复制这些配对标点符号中的文本内容

vi'、vi"、vi(、vi[、vi{、vi< - 分别选中这些配对标点符号中的文本内容}])}])}])}])"

复制或移动内容到指定位置

行号9 ,行号15 copy 行号16 将行号9到行号15的内容复制到行号16所在行的后面。

行号9 ,行号15 move 行号16 将行号9到行号15的文本内容移动到行号16所在行的后面。

复制到系统剪切板

在普通模式下按v进入可视模式,选中要复制的内容后按

" + y 

三个键就可以把内容复制到系统粘贴板,下面在终端那里按Ctrl+Shift+v就可以粘贴了

VIM格式化代码

按两下小写g,即gg,定位光标到第一行。

按住Shift+v,即大写V,进入可视化编辑的列编辑模式。

Shift+g,即大写G,选中整个代码。

按下等号=,格式化所有代码。"

进入头文件

gf

移动到当前的行的中间

gm

查看字符ascii码

在normal模式下光标停在某个字符上ga可以查看该字符的ascii码

跳到行首非空白字符

^

粘贴系统剪切板内容

不带自动缩进

“ + p

替换命令

替换命令的完整形式

:[range]s/from/to/[flags]

[range]

不写range : 默认为光标所在的行。

. : 光标所在的行。

1 : 第一行。

$ : 最后一行。

33 : 第33行。

'a : 标记a所在的行(之前要使用ma做过标记)。

.+1 : 当前光标所在行的下面一行。

$-1 : 倒数第二行。(这里说明我们可以对某一行加减某个数值来取得相对的行)

22,33 : 第22~33行。

1,$ : 第1行 到 最后一行。

1,. : 第1行 到 当前行。

.,$ : 当前行 到 最后一行。

'a,'b : 标记a所在的行 到 标记b所在的行。

% : 所有行(与 1,$ 等价)。

?chapter? : 从当前位置向上搜索,找到的第一个chapter所在的行。(其中chapter可以是任何字符串或者正则表达式)

/chapter/ : 从当前位置向下搜索,找到的第一个chapter所在的行。(其中chapter可以是任何字符串或者正则表达式)

注意,上面的所有用于range的表示方法都可以通过 +、- 操作来设置相对偏移量。

s/from/to/

把from指定的字符串替换成to指定的字符串,from可以是正则表达式。

[flags]

无 : 只对指定范围内的第一个匹配项进行替换。

g : 对指定范围内的所有匹配项进行替换。

c : 在替换前请求用户确认。

e : 忽略执行过程中的错误。

注意:上面的所有flags都可以组合起来使用,比如gc表示对指定范围内的所有匹配项进行替换,并且在每一次替换之前都会请用户确认。

vimdiff

vim -d file1 file2

vimdiff file1 file2

如果已经打开了文件file1,再打开另一个文件file2进行比较

:vert diffsplit file2

如果已经用split方式打开了两个文件file1,file2,又想比较两文件的不同,分别在两个窗口里面输入命令

:diffthis

如果更改了某个窗口的内容,vim又没有自动更新diff检查,可以使用如下命令更新

:diffupdate

跳到前一个不同点

[c]

跳到后一个不同点

]c

将差异点的当前文档内容应用到另一文档(diff put)

dp

将差异点的另一文档的内容拷贝到当前文档(diff get)

do

用折叠命令来临时展开被折叠的相同的文本行(folding open, z这个字母看上去比较像折叠的折)

zo

重新折叠(folding close)

zc

参考资料

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部