开始gvim

听说大神都用vim,耐不住寂寞,也班门弄斧搞了个gvim,对它的命令也不是特别熟练,我只好将它的命令记在博客里,以便日后能够查看。俗~~~~



操纵文件

Vim命令 动作

:e filename 打开一个新文件,可以用TAB键自动补全

:w filename 保存更改。如果不指定文件名,Vim会存为你正在编辑的文件。如果要存为不同的文件,需要指定文件名

:q 退出Vim。如果有未保存的更改,Vim会拒绝退出。

:q! 强制退出!

:wq 写文件并退出

:x 几乎和:wq一样,如果你修改了文件,它会写文件并退出。如果你没有修改文件,Vim会不写文件直接退出。



文件内的移动

These Vim commands and keys work both in command mode and visual mode.

Vim命令 动作

j or Up Arrow 向上移动一行

k or Down Arrow 向下移动一行

l or Right Arrow 向右移动一个字符

h or Left Arrow 向左移动一个字符

e 移动到一个词(word)尾

E 移动到白空格(whitespace)分隔的词尾

b 移动到一个词(word)的开头

B 移动到白空格(whitespace)分隔的词头

0 移动到行首

^ 移动到一行的首个非白空格的字符

$ 移动到行尾

H 移动到屏幕的第一行

M 移动到屏幕的中间一行

L 移动到屏幕的最后一行

:n 跳至屏幕的第n行



插入和替换文本

Vim命令 动作

i 在光标之前插入

I 在该行行首插入

a 在光标之后插入

A 在该行行尾插入

o 在下一行新建一行并插入

O 在上一行新建一行并插入

C Change the rest of the current line.

r 覆盖一个字符。在覆盖完成以后,回到命令模式。

R 进入插入模式,但是不再是插入文本,而是覆盖文本。跟word里insert键的作用类似

ESC 退出插入/改写 模式,回到命令模式。



删除文本

Vim命令 动作

x 删除光标后的字符

X 删除光标前的字符

dd or :d 删除当前行



进入可视模式(Visual mode)

Vim命令 动作

v 开始定义高亮字符,用定位键(j or 向下键等)来选择要高亮的文本。

V 开始定义高亮行。

ESC 退出可视模式(visual mode)并返回命令模式



编辑块文本

The Vim commands marked with (V) work in visual mode, when you’ve selected some text. The other commands work in the command mode, when you haven’t selected any text.

Vim命令 动作

~ 改变字符的大小写。在命令模式和可视模式下都可以工作。在可视模式下,它用来改变高亮文本的大小写。在命令模式下,改变光标处字符的大小写。

(V) 右移

< (V) 左移

c (V) 改变高亮的文本

y (V) 拖动(Yank)高亮的文本。在Windows术语中叫做:拷贝选定的文本到剪切板

d (V) 删除高亮文本。

yy or :y or Y 拖动(yank)当前行,你不必首先高亮该行。

dd or :d 删除当前行。同样,你不必先高亮该行。

p 在windows术语中,“粘贴”“剪切板”的内容。在Vim术语中,你“放置”“拖动(yank)”或删除的文本。如果是字符则放在光标后面,如果是行则放在当前行下面。

P 如果是字符则放在光标前面,如果是行则放在当前行上面。



撤销(undo)和重做(redo)

Vim命令 动作

u 撤销上一个动作

U 撤销所有最近针对该行的更改。

Ctrl + r 重做



搜索

Vim命令 动作

/pattern 根据模式(pattern)搜索文件。

n 搜索同方向的下一个匹配。

N 搜索反方向的下一个匹配。



替换

Vim命令 动作

:rs/foo/bar/a 用bar来替换foo。r确定替换的范围,a确定替换的参数。 替换范围(r)可以是: 空白(nothing) 只在当前行起作用 数字(number) 在你指定的哪一行起作用

% 整个文件 参数(a)可以是:

g 替换该行内所有的匹配。如果不要该参数,Vim仅仅替换第一次的匹配。

i 在搜索模式中忽略大小写。

I 不忽略大小写。

c 对每一次替换都确认。你可以键入y来替换这次匹配,n去跳过这次匹配,或者a来替换所有剩下的匹配,或者q来退出替换。



例子:

:452s/foo/bar/

替换第452行首次出现的foo为bar。

:s/foo/bar/g

替换当前行中所有出现的foo为bar

:%s/foo/bar/g

替换整个文件中所有出现的foo为bar

:%s/foo/bar/gi

和上面一样,不过忽略大小写。

:%s/foo/bar/gc

和第三个一样,不过每次替换都要确认。

:%s/foo/bar/c

对文件的每一行,替换foo的首次出现为bar并且每次替换都要确认。