Vim编辑器(visual interface improved)
学习了一段时间的vim后,从网上和书本中总结了一些最常用的vim命令,以下内容大部分来自网络,经过实际操作验证
Vim是vi的升级版本,但在redhat6.4里面默认是没有装的,所以需要安装,用以下命令即可安装:yum install �Cy vim
Vim filename:打开一个文件且默认是命令行模式或者创建一个空文件(如果filename不存在)
vim配置文件是/etc/vimrc
在练习之前可以对vim做一点小小的调整。编辑~目录下的.vimrc(如果没有直接创建,也可以直接修改配置文件/etc/vimrc),添加如下信息:
setts=4 表示tab键的宽度
setautoindent 表示自动缩进
syntax on 语法高亮
在命令行模式下:
a:在光标所在字符后插入
A:在光标所在行末尾插入
i:在光标所在字符前插入
I:在光标所在行首插入
o:光标所在行下一行插入
O:光标所在行上一行插入
:set nu :设置行号
:set nonu: 取消设置行号
G:跳到最后一行
gg:跳到第一行
nG:跳到第n行
0:跳到行首
$:跳到行尾
x:删除光标所在字符
X:删除光标前字符
dd:删除光标所在行
ndd:删除光标所在行以下n行(包括光标所在行)
dG:删除所在行和以后的行
D: 删除所在行到行尾
yy:复制当前行
nyy:复制下面n行(包括光标所在行)
p(小写):在所在行下一行粘贴
P(大写):在所在行上一行粘贴
ZZ保存并退出
/keyword: 搜索关键字,用你在关键字之间切换
在末行模式下:
!表示强制的意思
:w:保存
:wq:保存并退出
:wq!:强制保存并退出(:x!)
:sh : 进入命令行界面,执行完后Ctrl+d返回继续编辑文档
:!cmd: 执行cmd命令后enter建继续编辑文档
:r /etc/filename 在光标下一行导入该文件的内容
:r !command 在下一行插入命令执行结果
查看文件
如果是想强制性地避免对文件进行修改,可以用命令:
vim -M filename。
vim 选择文本
v 从光标当前位置开始,光标所经过的地方会被选中,再按一下v结束。
V 从光标当前行开始,光标经过的行都会被选中,再按一下V结束(选中一行)。
Ctrl + v 从光标当前位置开始,选中光标起点和终点所构成的矩形区域,再按一下Ctrl + v结束。
ggvG 选中全部的文本, 其中gg为跳到行首,v开始选中,G到末尾
选中后就可以用编辑命令对其进行编辑
d 删除
y 复制(默认是复制到"寄存器)
p 粘贴(默认从"寄存器取出内容粘贴,如果内容是一行则从下一行粘贴,如果不是一行 则从当前所在字符后粘贴)
重做(对撤消的撤消)
如果你撤消了多次,你还可以用CTRL-R(重做)来反转撤消的动作。换句话说,它是对撤消的撤消。用"u"和CTRL-R你可以找回任何一个操作状态
在命令之前加上数字表示命令执行的次数
如9k、5j、4h、8l,5d
放弃编辑(在没有保存的前提下)
丢弃所有的修改并退出,用命令":q!"。用":e!"命令放弃所有修改并重新载入该文件的原始内容。U表示撤销所有的编辑
以Word为单位的左右移动
使用"w"命令可以将光标向右移动一个word的首字符上,
使用"b"命令可以将光标向左移动一个word的首字符上。
移动到行首或行尾
“$”命令将光标移动到当前行行尾。"^"命令将光标移动到当前行的第一个非空白字符上。"0"命令则总是把光标移动到当前行的第一个字符上。键也是如此。"$"命令还可接受一个计数,如"1$"会将光标移动到当前行行尾,"2$"则会移动到下一行的行尾,如此类推。
移动到指定行
首先显示行号,然后用数字加上gg或G,比如23gg或者23G表示定位到23行
命令"H","M","L",分别将光标跳转到第一行,中间行,结尾行部分。在末行模式下:45跳转到45行
告诉你当前的位置
使用CTRL-G命令。"set nu"在每行的前面显示一个行号。相反关闭行号用命令":set nonu"。":set ruler"在Vim窗口的右下角显示当前光标位置。
滚屏
CTRL-U显示文本的窗口向上滚动了半屏。CTRL-D命令将窗口向下移动半屏。一次滚动一行可以使用CTRL-E(向上滚动)和CTRL-Y(向下滚动)。要向前滚动一整屏使用命令CTRL-F。另外CTRL-B是它的反向版。"zz"命令会把当前行置为屏幕正中央,"zt"命令会把当前行置于屏幕顶端,"zb"则把当前行置于屏幕底端.
简单搜索
"/string"命令可用于向后搜索一个字符串。用n(下一个)或者N(上一个)在找到的字符之间切换。
"?string"命令可用于向前搜索一个字符串。用n(上一个)或者N(下一个)在找到的字符之间切换。
搜索之后会出现高亮,取消高亮就用”:nohl”
如果查找内容忽略大小写,则用命令"setignorecase", 返回精确匹配用命令"set noignorecase" 。
查找并替换
:%s/old/new/g :全文将old替换为new
:%s/old/new/cgi :全文将old替换为new,替换时会提醒是否替换,且忽略大小写
:4,88s/old/new/g :将4行到88行的old替换为new
(c表示询问是否替换,g表示整行替换,i表示忽略大小写)
:s/old/new/g 表示只对当前行处理
在文本中查找光标所在Word下一个word
把光标定位于这个word上然后按下"*"键。Vim将会向后进行搜索当前字符串。"#"命令是向前搜索。
查找整个word
如果你用"/the"来查找Vim也会匹配到"there"。要查找作为独立单词的"the"使用如下命令:"/the\>"。"\>"是一个特殊的记法,它只匹配一个word的结束处。
匹配一行的开头与结尾
^ 字符匹配一行的开头。$字符匹配一行的末尾。
所以"/was$"只匹配位于一行末尾的单词was,所以"/^was"只匹配位于一行开始的单词was
删除一个单词
diw、bdw
复制
复制一个单词byw
复制一行yy
替换单个字符
"r"命令等待你键入下一个字符用以替换当前光标下的那个字符
显示当前正在编辑的文件
用Ctrl+g或者命令":args"
编辑另一个文件
用命令":e file.txt",当你发现正在编辑的文档有几句话需要记录的话可以使用该方法,这样会保存在当前目录,要返回刚才编辑的文本,需要使用”e filename ”
文件列表
可以在启动Vim时就指定要编辑多个文件,用命令"vim one.c two.c three.c"。Vim将在启动后只显示第一个文件,完成该文件的编辑后,保存”:w”,可以用命令:":n" 继续下一个文件的编辑,命令:":wn"可以合并这一过程(保存进入下一个文件)。要编辑前一个文件就用prev,编辑过程中用”:args”查看编辑的文件名,要在两个文件间快速切换,使用CTRL-^,编辑最后一个文件用:last,编辑第一个文件:first,
另存为
如果想将修改的内容另存为,则使用 :save as otherfilename