VI常用命令

开发转向LINUX平台,用好vi对提高工作效率极有好处。原本在读大学的时候学过一阵vi,略知皮毛,后来一直在windows平台上做开发就荒废了,现在拾起来。

把这些命令稍微整理了下,以作个备忘吧。


移动光标

h: 左

j: 下

k: 上

l: 右


w: 向右移动一个word

b: 向左移动一个word


0: 行首(第一列)

^: 第一个非空(空格或tab)字符

$: 行尾


H: 移动光标到屏幕顶行(high)

M: 移动光标到屏幕中间(middle)

L: 移动光标到屏幕底部(low)


nG: 移动光标到第n行

gg: 移动光标到文件第一行行首

G: 移动光标到文件最后一行行首


Ctrl+f: 屏幕向文件尾移动一屏

Ctrl+b: 屏幕向文件首移动一屏

Ctrl+u: 屏幕向文件首移动半屏

Ctrl+d: 屏幕向文件尾移动半屏


编辑

i: 在当前字符前面输入字符: insert

I: 在当前行首插入字符

a: 在当前字符后面输入字符: append

A: 在当前行尾插入字符

x: 删除当前字符

r: 以随后输入的字符替代当前字符 replace

R: 替换当前字符及其后的字符,直到按ESC

o: 在当前行之下新开一行

O: 在当前行之上新开一行


dw: 删除当前word

d$: 删除从当前字符到行尾中间所有的字符

D: 同上

d0: 删除从当前字符到行首中间所有的字符

d^: 删除从当前字符到第一个非空字符中间的所有字符

dd: 删除当前行


ndd:从当前行开始删除n行. 比如5dd,从当前行开始删除5行

s: 删除当前字符并进入插入模式

S: 删除当前行并进入插入模式


J: 合并行


u: 撤消

Ctrl+r: 撤消


选择和复制

yy: 复制当前行

nyy: 比从当前行复制n行.比如5yy,从当前行开始复制5行

y$: 复制当前所在字符到行尾

y0: 复制当前所在字符到行首

y^: 复制当前所在字符到第一个非空字符


当前字符按下v,移动光标,选中的字符串会高亮显示,选中后按y(复制)或d(剪切),然后移动光标到要复制或剪切的目标位置,按p



搜索

/keyword : 搜索keyword

?keyword : 向前搜索keyword

n: 下一个匹配的字符串 next

N: 上一个匹配的字符串


退出

:w 保存文件

:q 退出程序

:q! 强制退出程序,不保存

:wq 保存文件并退出


常用设置:

:set number  显示行号

:set ignorecase 搜索时忽略大小写

:syntax on

:set ts=4

:set expandtab


可以在vimrc中做以上的设置,这样即使退出vim,再次启动,设置也会保留


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章