您的位置:首页 > 其它

Vim编辑器基本操作命令

2016-05-31 13:35 357 查看
以前一直对使用Vim来编辑修改文件感觉一种莫名的小拒绝,觉得超级不方便啊。现在才知道,是自己知道的太少,图样图森破啊!

Vim编辑器在内存缓冲区中处理数据。

启动Vim编辑器:输入vim和要编译的文件名(或是vi和要编译的文件名)。如:

vim log.txt

如果指定的log.txt不存在,则Vim会新开一段缓冲区来编辑。此时在屏幕的下方会有"log.txt"
[New File] 显示。

如果指定的log.txt存在,则Vim会将整个内容都读到一块缓冲区域来准备编辑。在最底部会显示编辑文件的信息,如:

"log.txt" 42L, 430C                                                                                
                                  1,1           All

Vim的三种操作模式:

(1)普通模式,使用vim或是vi命令打开一个文件,就进入到了普通模式。在普通模式下,Vim将按键解释成命令。

可以使用方向键来上下左右移动光标。也可以使用h,j,k,l键来左,下,上,右移动光标。

使用PageUp(Ctrl+B) PageDown(Ctrl+F)来上下翻页。

G:光标移到缓冲区的最后一行

num G:光标移动到缓冲区的第num行

gg:光标移动到缓冲区的第一行

在普通模式下,常用的编辑命令:

x        删除当前光标所在位置的字符

dd      删除当前光标所在行

dw     删除当前光标所在位置的单词(但是不会删除光标之前的字符,如光标如果在android的d上,则只会删除droid,不会删除an,但是如果          光标在a上,则整个android都会被删除)

d$     删除当前光标所在位置至行尾的内容

u       撤销前一条编辑命令

r char   用char替换当前光标所在位置的单个字符

R text   用text覆盖当前光标坐在位置的数据,知道按下Esc键。(Replace)

J       删除当前光标所在行行尾的换行符。(如在上一行输入OK,然后回车,在下一行输入NOT,则在OK行执行J,下一行的NOT会移到上            一行去,即删除了OK行的回车换行符)

复制和粘贴

Vim在删除数据时,实际上它会将数据保存在单独的一个寄存器中,可以使用命令p来取回数据。

剪切和粘贴:dd,dw,d$命令等先删除,再用p命令取回数据。如先使用dd删除光标所在行,然后把光标移动到要粘贴该文本的地方,再使用p命令粘贴即可。

复制和粘贴:复制采用y命令,如yw为复制光标所在的单词,y$为复制到行尾等,然后再使用p命令粘贴即可。还有一种可视模式来复制,使用更方便:可视模式在移动光标时会高亮显示文本。进入可视模式,把光标放在需要复制的位置,然后按v键,这时光标所在位置的文本已经被高亮显示,接着移动光标覆盖需要复制的文本,移动光标时,所选区域都会高亮显示,选择完后,按y键来激活复制命令,然后把光标移动要需要粘贴的位置,按p键粘贴即可。

(2)插入模式,在普通模式时,按i,I,o,O,a,A,r,R中的任何一个字母,就进入到插入模式。在插入模式下,Vim会将当前光标位置输入的每个键都插入到缓冲区。在插入模式下,按Esc键回到普通模式。

(3)命令行模式,在普通模式时,输入:,/,?中的任何一个,就进入到命令行模式。

在命令行模式可以输入如下命令来退出编辑:

q:如果没有修改缓冲区内容,退出。

q!:取消所有对缓冲区数据的修改并退出。

wq:将缓冲区的数据修改保存并退出

w filename:将文件保存到另一个文件名下。

在命令行模式下可以查找字符串:

输入:/要查找的字符串,然后回车

如要查找love,则在命令行输入:/love,然后回车。此时会有三种情况:在光标之后有love,则光标移到光标后出现love的第一个位置;在光标之后没有love,但是在光标之前有love,则光标绕过文件尾移动到出现该字符创的第一个位置;在文本中没有love,则输出一条错误消息:E486:
Pattern not found: love

要继续查找同一个字符串,只需要按下/然后回车即可,或者使用n键(next)。

在命令行模式下替换字符串:

格式:s/old/new/

:s/old/new/g            使用new替换光标所在行的所有old

:n,ms/old/new/g      使用new替换行号n和m间的所有old
:%s/old/new/g
        使用new替换整个文件中的所有old

:%s/old/new/gc
      使用new替换整个文件中的所有old,并且每次都出现提示

《Linux命令行与Shell脚本编程大全(第二版)》真是一本入门好书!!!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: