您的位置:首页 > 其它

vim编辑器介绍及其常用命令

2017-11-23 21:39 260 查看

vim简单的介绍

  Vim 编辑器是一个模式编辑器 。 这意味着在不同状态下编辑器有不同的行为模式 。 两个基本的模式是 Normal 模式和 Insert 模式 ,还有可视模式。 在 Normal 模式下你键入的每一个字符都被视为一个命令 。 而在 Insert 模式下键入的字符都作为实际要输入的文本内容 。可视模式为我们提供了极为友好的选取文本范围,以高亮显示。

  刚启动时 Vim 工作于 Normal 模式 。 要进入 Insert 模式你需要使用"i"命令(i 意为 Insert). 接下来就可以直接输入了 。

  最后按下键退出 Insert模式回到 Normal 模式 。 要进入可视模式你按“v”就可以了,接下来就会进入可视模式。

模式间的转换



命令说明
i在光标之前插入
a在光标之后插入
I在光标所在行的行首插入
A在光标所在行的行末插入
o在光标所在的行的上面插入一行
O在光标所在的行的下面插入一行
s删除光标后的一个字符,然后进入插入模式
S删除光标所在的行,然后进入插入模式
v进入可视化模式

退出vim编辑器

欲退出vim编辑器,请先回到正常模式,在输入: 回到命令模式,此时请输入以下命令∶

:q   正常不保存退出

:q!  强制不保存退出

:wq  正常保存退出

:如果你在放弃所有修改后还想以该文件的初始内容作为开始继续编

辑,还可以用":e!"命令放弃所有修改并重新载入该文件的原始内容 。

工作模式显示设置

要知道你现在所处的工作模式是什么,打开显示模式的开关:

:set showmode

你会看到按下冒号键之后当前光标跑到窗口的最后一行去了 。 那是使用冒号命令的地方(顾名思义,冒号命令就是总是以冒号打头的命令). 最后按下回车键结束整个命令(所有的冒号命令都以这种方式表明命令的结束).

现在就会在窗口底部显示模式的名称

--INSERT--这表明你目前处于 Insert 模式 。

--VISUAL-- 这表明你目前处于可视模式。

注:Normal 模式并不会显示--NORMAL--, 作为默认的工作模式它不显示任何字串

移动光标

移动光标有两种方式

第一种:常用的用箭头移动

第二种:用vim提供的方式:

在 Normal 模式后,你就可以用下面的命令来移动光标:
h 左
j 下
k 上
l 右

即:



删除字符

格式 d+位移命令

命令说明
x删除一个字符
nx删除n个字符
dw命令可以删除一个 word
dnw命令可以删除n个 word
dd删除所在行
ndd删除从本行起第n行(n可以为负数)
d$命令就是删除自当前光标到行尾的内容
:j删除本行的换行符
:nj删除第n行的换行符,当为n负数时删除从本行起的前n行的换行符
注: 很多命令都可以接受一个数字作为重复执行同一命令的次数 。

比如在本行添加10个你好!,就可以这样写 10a你好!

接下来就是讲一些比较常用的操作命令

常用命令

移动

以 Word 为单位的光标移动

w  命令还是会将光标移动到下一个 word 的首字符上

b  命令则将光标向后移动到前一个word 的首字符上

e   命 令 会 将 光 标 移 动 到 下 一 个 word 的 最 后 一 个 字符

ge   将光标移动到前一个 word 的最后一个字符上

将光标移到行首或行尾

^  命令将光标移动到当前行的第一个非空白字符上

   注:命令"^"前加上一个计数并没有任何效果

$  命令将光标移动到当前行行尾

n$  则会移动到下n行的行尾

0  命令将光标移动到当前行行首

将光标移动到指定的字符上

fx  在当前行上查找下一个字符 x. 提示:"f"意为"find".汉字的空格不被视为空白字符

nfx  会把光标定位查找第n个字符 x

   如:命令"3fa"会把光标定位于"ababaa"的第三个"a"上

Fx  命令向左方向搜索

tx  命令形同"fx"命令,只不过它不是把光标停留在被搜索字符上,而是在它之前的一个字符上

Tx  命令向左方向搜索


  注:这 4 个命令都可以用";"来重复 。 以","也是重复同样的命令,但是方向与原命令的方向相反 2 。 无论如何,这 4 个命令都不会使光标跑到其它行上去 。 即使当前的句子还没有结束



将光标移动到匹配的括号上

%   它跳转到与当前光标下的括号相匹配的那一个括号上去

将光标移动到指定的行上

nG  就会把光标置于第 n 行上

G   会把光标定位到最后一行

gg  命令是跳转到第一行的快捷的方法

"H"意为 Home, "M"为 Middle, "L"为 Last.分别跳到首行,中间,末行

滚屏

CTRL-U  命令会使文本向下滚动半屏

CTRL-D  命令将窗口向下移动半屏,所以相当于文本向上滚动了半屏

CTRL-E  向上滚动一行

CTRL-Y  向下滚动一行

CTRL-F  向前滚动一整屏(实际上是整屏去两行)

CTRL-B  向后滚动一整屏

zz    把当前行置为屏幕正中央

zt    命令会把当前行置于屏幕顶端

zb    则把当前行置于屏幕底端

搜索

/string   命令可用于搜索一个字符串,这里也可以使用正则表达式

?string  命令与"/"的工作相同,只是搜索方向相反

  注: 字符.*[]^%/?~$ 有特殊意义,如果你要找的东西包括这些内容,要在这些字符前面放置一个反斜杠 。


  要查找上次查找的字符串的下一个位置 。 使用"n"命令如果你知道你要找的确切位置是目标字符串的第几次出现,还可以在"n"之前放置一个命令计数 。 "3n"会去查找目标字符串的第 3 次出现 。"N"命令会重复前一次查找,但是与最初用"/"或"?"指定的搜索方向相

反 。



忽略大小写

  通常情况下你要准确地键入你要查找的东西 。 如果你并不关心目标字

符中字母的大小写,可以通过设置'ignorecase'选项

:set ignorecase

:set noignorecase


查找整个 WORD

如果你用"/the"来查找 Vim 也会匹配到"there". 要查找作为独立单

词的"the"使用如下命令:

/the\>


高亮显示搜索结果

:set hlsearch

:set nohlsearch


使用标记

当你用"G"命令从一个地方跳转到另一个地方时,Vim 会记得你起跳的位置 。 这个位置在 Vim 中是一个标记

``”   命令可以在两点之间来回跳转

CTRL-O  命令是跳转到你更早些时间停置光标的位置(提示:O 意为 older)

CTRL-I   则是跳回到后来停置光标的更新的位置,与按下键一样

:jumps   命令会列出关于你曾经跳转过的位置的列表 。 你最后一个跳转的位置被特别以一个">"号标记

'mark  (单引号,或者叫呼应单引号)会使你跳转到 mark 所在行的行首

  Vim 允许你在文本中定义你自己的标记 。 命令"ma"将当前光标下的位

置名之为标记"a"。 从 a 到 z 一共可以使用 26 个自定义的标记 。 定义后的标记在屏幕上也看不出来 。 不过 Vim 在内部记录了它们所代表的位置 。

  要跳转到一个你定义过的标记,使用命令`{mark}, {mark}就是你定

义的标记的名字 。

标记当前选中行标记为a,命令为  ma

跳转到a标记处 命令为: 'a

 :marks  查看关于标记的列表

文本的改变

删除

格式 d+位移命令

命令说明
x代表 dl(删除当前光标下的字符)
X代表 dh(删除当前光标左边的字符)
D代表 d$(删除到行尾的内容)
nx删除n个字符
dw命令可以删除一个 word
dnw命令可以删除n个 word
dd删除所在行
ndd删除从本行起第n行(n可以为负数)
d$命令就是删除自当前光标到行尾的内容
db删除自当前光标至前一个 word 的开始
diw删除当前光标所在的 word(不包括空白字符)
daw删除当前光标所在的 word(包括空白字符)
dG删除当前行至文件尾的内容
dgg删除当前行至文件头的内容
:j删除本行的换行符
:nj删除第n行的换行符,当为n负数时删除从本行起的前n行的换行符

修改

命令说明
c修改操作符
cw改变到一直到 word 结尾的内容
ce改变到一直到 word 结尾的内容和cw一样
cc命令可以改变整行,不过仍保持原来的缩进
c$改变当前光标到行尾的内容
s代表 cl(修改一个字符)
S代表 cc(修改一整行)
注:c命令的行为与"d"命令类似,不过在命令执行后会进入 Insert 模式

重复改动

  "."命令是 Vim 中一个简单而强大的命令 。 它会重复上一次做出的改动 。

  假设你在编辑一个 HTML 文件,想删除其中所有的<B>标签 。 你把

光标置于<B>的
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: