您的位置:首页 > 其它

vim常用命令

2013-11-27 20:26 218 查看
自己也用vim很多年了,今天有空总结了下平常经常使用的命令,共享之。

1. 打开保存文件

:e <filename> 打开文件

:saveas <filename> 另存为

:ZZ 等于:wq 保存退出

:bn 切换到下一个打开的文件

:bp 切换到上一个打开的文件

:! 执行shell命令

2. 进入输入模式

i 从光标当前位置开始输入文件。

a 从目前光标所在位置的下一个位置开始输入文字

I 行首插入。

A 行尾插入。

o 插入新的一行,从行首开始输入文字。

O 在光标所在的行的上面插入一行。

s 删除光标后的一个字符,然后进入插入模式。

3. 移动光标

h 向左

space 向右(我觉得比l方便)

k 向上

J 向下

0 到行首

^ 到本行第一个非空字符

$ 到行尾

g_ 到本行最后一个非空字符

w 跳到下个字的开头,W忽略符号

e 光标跳到下个字的字尾, E忽略符号

b 光标回到上个字的开头,B忽略符号

f+x 向前跳到第一个x字符处,F向后

t+x 跳到x的前一个字符,T向后跳到x的后一个字符

*|# 搜索单词,*向下,#向上,配合大小n使用

gd 光标移到变量定义处

ctrl + n 根据已有单词自动补齐

zz 让光标所在行居于屏幕中央,写到最底部时有用

zt 让光标所在行居于屏幕最顶部

zb 让光标所在行居于屏幕底部

% 移动到闭括号

[{            移动到匹配的{

4. 删除文本

dw 删除光标到word结尾

cw 删除光标到word结尾并进入insert模式

daw 删除光标所在的整个word

caw 删除光标的word并进入insert模式

d$ 删除至行尾

d0 删除至行首

dG            删除至最后一行

: num1, num2 d 删除num1到num2之间的所有行

: 1,.d 删除第一行到当前行

c$ 删除至行尾并进入insert模式,等于C

c0 删除至行首并进入insert模式

dd 删除整行

ddp 上下两行调换

dt+x 删除所有字符直到遇到x

cc 删除整行并进入insert模式

shift+j 删除行尾的换行符,下一行接上来了

dib 删除()内文本

dab 删除()内文本,包括()

diB 删除{ }内文本

daB 删除{ }内文本,包括{ }

5. 复制文本

yw 复制光标到word结尾

yaw 复制整个word

nyw 复制光标至第n个word结尾

y$ 复制至行尾

y0 复制至行首

yG 复制至最后一行

: num1, num2 y 复制num1到num2之间的所有行

:1,.y 复制第一行到当前行

:num1,num2 co num3 复制行num1到num2到行num3,适用于复制多行

:num1, num2 m num3 剪切行num1到num2到行num3,适用于剪切多行

yib 复制()内文本

yab 复制()内文本,包括()

yiB 复制{ }内文本

yaB 复制{ }内文本,包括{ }

p 复制到当前字符后

P 复制到当前字符前

6. 替换文本

r 替换光标所在处的字符。

R 替换光标所到处的字符,直到按下“ESC”键为止,非常实用!

:s/string1/string2/g 将string1替换为string2, 限于本行

:%s/string1/string2/g 全文替换,%表示所有行,s为substitute,g为global(替换范围内每行所有string1),没有g只会替换每行的第一个string1

:num1,num2 s/string1/string2/g 行num1至num2范围内替换

:1,500 /^/#/g 在前500行行首插入#

:1,500 /$/#/g 在前500行行尾插入#

~ 切换大小写,当前字符

7. 可视模式

V 进入可视行模式,

v 进入可视字符模式

> 选中的块右移

< 块左移

= 块自动对齐

使用V选择多行,>,<和=可以多行对齐,实用功能!

ctrl + v 列模式,可以选中块

在所有被选择行前加注释:

ctrl + v进入列模式, 选中注释行,I到第一行行首输入//, 按两次esc即可

删除注释:

ctrl+v 选中注释,d

在所有被选中行后加文本:

ctrl + v进入列模式, 选中注释行,$到行尾,A到第一行行尾输入文本, 按两次esc即可

vib 选中()内文本

vab 选中()内文本,包括()

viB 选中{ }内文本

vaB 选中{ }内文本,包括{ }

8. 区域选择

<action>a<object> 或<action>i<object>

action 通常是 d (删除), y (拷贝), v (可视模式选择)。

object 通常可以是字符 " ' ) } ]等,用于选择 “ ” ‘ ’ ( ) [ ] { }中的文本

i只选择符号内部字符,a包含符号

di) 等于dib

daB 等于da}

>> 本行右缩进

<< 本行左缩进

== 本行自动缩进当前行

9. 命令

:set hlsearch 高亮显示查找到的单词

:set nohlsearch 关闭改功能

:set nu 显示行号

:set nonu 关闭显示行号
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: