作为一个Linux 菜鸟中的老鸟!!你必须熟悉一种linux上的编辑器,vim、Emacs、KDE、GNOME,随便你喜欢哪一种,今天我就总接下Vim的使用详解,,这样你就可以快速的在命令行下使用键盘修改文件(少碰鼠标可以提高X格)。
GUN项目将vi编辑器移植到开源世界时就注定我们要记命令!!
1. Vim 基础
Vim编辑器在内存缓冲区中处理数据。启动Vim编辑器,若未指定文件名,Vim会新开一段缓冲区域来编辑,若是文件已经存在Vim会将文件的整个内容都读到缓冲区准备编辑。最初Vim编辑窗口显示了文件内容,并在窗口底部显示一条消息行。如果文件内容未占满整个屏幕,Vim会在非文件内容行放置一个波浪线。
底部的消息行显示了在编辑文件的信息,根据文件状态以及Vim安装时的默认设置,如果文件是新建的,会出现[New
File]。
Vim编辑器有两种操作模式:
普通模式;
插入模式;
当你打开要编辑的文件时(或新建一个文件时),Vim会进入普通模式。在普通模式中,Vim编辑器会将按键解释成命令。
在插入模式下,Vim会将当前光标位置中输入的每一个健都插入到缓冲区中。(进入插入模式按i即可,退出Esc)
在普通模式中,可以使用方向键在文本中移动光标.如果恰巧在一个古怪的没有定义方向键的终端连接上,Vim命令中有用来移动光标的命令。
h:左移一个字符
j:下移一行
k:上一一行
l:右移一个字符
在大的文本文件中一行一行的移动会特别的麻烦,Vim提供了一些命令来帮助提高速度:
PageDown(Ctrl+F):下翻一屏数据
PageUp(Ctrl+B):上翻一屏数据
G:移到缓冲区最后一行
num G:移动到缓冲区第num行
gg:移动到缓冲区第一行
Vim编辑器在普通模式下有一个特别的功能叫命令行模式。命令行模式提供了一个可供输入额外的命令来控制Vim中行为的交互命令行,要进入命令行模式,在普通模式下按下冒号件,光标就会移动到消息行,冒号出现了,等待输入命令。
在命令行模式下有几个命令将缓冲区的数据保存到文件中 并退出vim:
q:如果未修改缓冲区数据,退出;
q!:取消对缓冲区数据的修改并退出;
w filename:将文件保存到另一个文件名下;
wq:将缓冲区中数据保存到文件中并退出;
2、编辑数据
在插入模式下,可以向缓冲区插入数据,然而有时你需要在将数据输入到缓冲区后添加或删除;
在普通模式下,Vim编辑器提供了一些命令来编辑缓冲区中的数据;
vim 编辑命令(普通模式下)
--------------------------------------------------------------------------------------------------------------------------------------------------
命令 描述
x 删除当前光标所在位置的字符;
dd 删除当前光标所在行;
dw 删除当前光标所在位置的单词;
d$ 删除当前光标所在位置至行尾的内容;
J 删除当前光标所在行行尾的换行符(拼接行);
u 撤销前一编辑命令;
a 在当前光标后追加数据;
A 在当前光标所在行行尾追加数据;
r char 用char替换当前光标所在位置的单个字符;
R text 用text覆盖当前光标所在位置的数据,知道按下ESC健
-------------------------------------------------------------------------------------------------------------------------------------------------
有些编辑命令允许使用数字修饰符来之定重复该命令多少次,比如,命令2x会删除从光标当前位置开始的两个字符,命令5dd会删除从光标当前所在行开始的5行。
3、复制和粘帖
剪切和粘帖相对比较容易些。在上面的讲述中你可以看到删除命令,但在Vim删除数据时,实际上它会将数据保存在单独的一个寄存器中,可以使用p命令取回数据。
eg:使用dd命令删除一行文本,然后将光标移动到缓冲区中某个要放置该行文本的地方,输入p命令,p命令就会将文本插入到当前光标所在之后的行,p可以和任何删除命令一起搭配使用。
复制文本则比较复杂一点,Vim中的复制命令是 y(yank), 你可以与y使用和d命令相同的第二字符(yw表示复制单词,y$表示复制到行尾),在复制文本后将光标移动到想放置文本的地方,输入p命令,复制的文本就会出现在该位置。--------------->复制的复杂指出在于,由于不会影响到你复制的文本,就没有办法看见到底是怎么操作的,所以很难确定到底复制了什么,知道粘帖操作之后才能明白,但是vim有另外一个功能解决这个问题。
可视模式:会在移动光标时高亮显示文本,所以可以用可视模式来选取要复制的文本,要进入可视模式,移动光标到要开始复制的位置,并按下v健。这是光标所在位置的文本已经被高亮显示了,下一步只需要移动光标覆盖想要复制的文本即可,在覆盖了想要复制的文本后,按下y健来激活复制命令。现在寄存器中已经有了要复制的文本,移动光标到
你要放置的位置,使用p命令粘帖。
1、在普通模式下,按下v健,并移动光标复制文本,y激活复制命令
2、p命令执行粘帖
4、查找和替换
使用Vim命令轻松的查找缓冲区中的数据。要输入一个查找字符串,按下/,光标会跑到消息行。然后Vim会显示斜线,输入要查找的文本,按下回车,vim会有回应。
继续查找下一个单词。使用n(next)。
替换命令可以快速替换单词:
命令行模式下替换命令的格式
-------------------------------------------------------------------------------------------------------------------------------------
:s/old/new/ vim会跳到old第一次出现的地方并用new来替换
:s/old/new/ g 替换所有old
:n,ms/old/new/g 替换行号n和m之间的所有old
:%s/old/new/ g 替换整个文件中所有old
:s/old/new/ gc 替换整个文件中所有old,并在每次出现时提示。
上面是一些基本的vim使用命令,需要熟记,这样可以快速编辑文本。
参考:linux命令行与shell脚本编程大全。