vim编辑器的操作详解

目录

一.进入退出vim及简单的操作

1.移动光标

2.VIM的进入和退出——q!/wq

1. :q! 

2.  :wq

3.文本编辑之删除——x

4.文本编辑之插入——i

5.文本编辑之添加——A

总结

二.vim删除操作

1.删除类命令——dw

2.更多删除类命令——d$

3.关于命令和对象——d?

4.使用计数指定动作

5.使用计数以删除更多

6.操作整行——dd

7.撤消类命令

总结

三.置入类命令

1.置入类命令

2.替换类命令

3.  更改类命令

4.使用c更改更多

总结

四.文件类操作

1.定位及文件状态

2.搜索类命令

3.配对括号的查找

4.替换命令

总结

五.vim中执行外部命令

1.在 VIM 内执行外部命令的方法

2.关于保存文件的更多信息

3.一个具有选择性的保存命令

4.提取和合并文件

总结

六.打开类命令

1.打开类命令——o

2.附加类命令——a i A

3.另外一个置换类命令的版本——R

4.复制粘贴文本

5.设置类命令的选项

总结

七.获取帮助信息

1.获取帮助信息

2.创建启动脚本

3.补全功能

总结


一.进入退出vim及简单的操作

1.移动光标

 要移动光标,可以按下 h、j、k、l 键。

h 的键位于左边,每次按下就会向左移动。 

l 的键位于右边,每次按下就会向右移动。

j 键看起来很象一支尖端方向朝下的箭头。

k键就是向上移动

功能和上下左右键大致一样

2.VIM的进入和退出——q!/wq

1. :q! 

这种方式的退出编辑器会丢弃您进入编辑器以来所做的改动。

文本未经过修改可以直接:q 退出

文本经过修改后不想保存就退出可以:q! (强制退出) 

2.  :wq

 保存改动过的文件并退出 Vim,按这些键: :wq  <回车>

3.文本编辑之删除——x

 在命令模式下,可以按下 x 键来删除光标所在位置的字符。

 为了修正输入错误,请将光标移至准备删除的字符的位置处。

 然后按下 x 键将错误字符删除掉。

4.文本编辑之插入——i

 在命令模式下,可以按下 i 键来插入文本

 如果想要修改文本内容,按下 i 键,接着输入必要的文本字符。

 每个错误修正完毕后,请按下 <ESC> 键返回正常模式。

5.文本编辑之添加——A

 按 A 键以添加文本

  1. 光标放在那一行的哪个字符上并不重要。

  2. 按 A 键输入必要的添加内容。

  3. 文本添加完毕后,按 <ESC> 键回到命令模式。

总结

1. 光标在屏幕文本中的移动既可以用箭头键,也可以使用 hjkl 字母键。

     h (左移)       j (下行)       k (上行)     l (右移)

2. 欲进入 Vim 编辑器(从命令行提示符),请输入:vim 文件名 <回车>

3. 欲退出 Vim 编辑器,请输入 <ESC>   :q!   <回车> 放弃所有改动。或者输入 <ESC>   :wq   <回

车> 保存改动。

4.在命令模式下删除光标所在位置的字符,请按: x

5. 欲插入或添加文本,请输入:

i   输入欲插入文本   <ESC>             在光标前插入文本

A   输入欲添加文本   <ESC>            在一行后添加文本

二.vim删除操作

1.删除类命令——dw

 输入 dw 可以从光标处删除至一个单词的末尾

将光标移至准备要删除的单词的起始处。接着输入 dw 删除掉该单词。

特别提示:当您输入时,字母 d 会同时出现在屏幕的最后一行。Vim 在等待您输入字母 w。如果您

看到的是除 d 外的其他字符,那表明您按错了;请按下 <ESC> 键,然后重新再来。

2.更多删除类命令——d$

输入 d$ 从当前光标删除到行末

请按下 <ESC> 键确保您处于正常模式。

3.关于命令和对象——d?

  许多改变文本的命令都由一个操作符和一个动作构成。

  使用删除操作符 d 的删除命令的格式如下:

 w - 从当前光标当前位置直到下一个单词起始处,不包括它的第一个字符。

 e - 从当前光标当前位置直到单词末尾,包括最后一个字符。

 $ - 从当前光标当前位置直到当前行末。

 de 会从当前光标位置删除到单词末尾。

4.使用计数指定动作

在动作前输入数字会使它重复那么多次。 

  • 输入 2w 使光标向前移动两个单词。(至单词的行首)
  • 输入 3e 使光标向前移动到第三个单词的末尾。
  • 输入 0 (数字零) 移动光标到行首。
  • home键是将光标移到行首,end键和$是将光标移动到行尾

5.使用计数以删除更多

使用操作符时输入数字可以使它重复那么多次。

输入 d2w 以删除两个大写字母单词。

6.操作整行——dd

输入 dd 可以删除整一个当前行。

  • 输入 dd 删除该行。
  • 接着输入 2dd 删除两行。

7.撤消类命令

 输入 u 来撤消最后执行的命令,输入 U 来撤消对整行的修改

  1. 请将光标移动到本节中下面标记有 ---> 的那一行,并将其置于第一个错误处。
  2. 输入 x 删除第一个不想保留的字母。
  3. 然后输入 u 撤消最后执行的(一次)命令。
  4. 这次要使用 x 修正本行的所有错误。
  5. 现在输入一个大写的 U ,恢复到该行的原始状态。
  6. 接着多次输入 u 以撤消 U 以及更前的命令。
  7. 然后多次输入 CTRL-R (先按下 CTRL 键不放开,接着按 R 键),这样就可以重做被撤消的命令,也就是撤消掉撤消命令。

总结

1. 欲从当前光标删除至下一个单词,请输入:dw,de

2. 欲从当前光标删除至当前行末尾,请输入:d$

3. 欲删除整行,请输入:dd

4. 欲重复一个动作,请在它前面加上一个数字:2w

5. 在正常模式下修改命令的格式是:operator   [number]   motion

      operator - 操作符,代表要做的事情,比如 d 代表删除

      [number] - 可以附加的数字,代表动作重复的次数

      motion   - 动作,代表在所操作的文本上的移动,例如 w 代表单词(word),$ 代表行末等等。

6. 欲移动光标到行首,请按数字0键:0/home键

    欲移动光标到行尾,按end键或者$

7. 欲撤消以前的操作,请输入:u (小写的u)

    欲撤消在一行中所做的改动,请输入:U (大写的U)

    欲撤消以前的撤消命令,恢复以前的操作结果,请输入:CTRL+r

三.置入类命令

1.置入类命令

输入 p 将最后一次删除的内容置入光标之后。

  • 输入 dd 将该行删除,这样会将该行保存到 Vim 的一个寄存器中。
  • 接着将光标移动到需要粘贴的一行,即准备置入的位置的上方。记住:是上方哦。
  •  然后在正常模式下(<ESC>键进入)输入 p 将该行粘贴置入。

2.替换类命令

输入 r 和一个字符替换光标所在位置的字符。

  • 请移动光标到出错的位置。
  • 接着输入 r 和要替换成的字符,这样就能将错误替换掉了。

3.  更改类命令

 要改变文本直到一个单词的末尾,请输入 ce 

  •  接着把光标放在要修改的地方
  •  然后输入 cw 以及正确的单词
  •  最后按 <ESC> 键,然后光标定位到下一个错误第一个准备更改的字母处。

cw和ce的操作结果是一样的

4.使用c更改更多

 更改类操作符可以与删除中使用的同样的动作配合使用

  1. 更改类操作符的工作方式跟删除类是一致的。操作格式是:

         c    [number]   motion

  2. 动作参数(motion)也是一样的,比如 w 代表单词,$代表行末等等。

  3. 将光标移动到第一个错误处。

  4. 然后输入 c$ 使得该行剩下的部分更正后按 <ESC> 键。

总结

  1. 要重新置入已经删除的文本内容,请按小写字母 p 键。该操作可以将已删除的文本内容置于光标之后。如果最后一次删除的是一个整行,那么该行将置于当前光标所在行的下一行。
  2. 要替换光标所在位置的字符,请输入小写的 r 和要替换掉原位置字符的新字符即可。
  3. 更改类命令允许您改变从当前光标所在位置直到动作指示的位置中间的文本。比如输入 ce 可以替换当前光标到单词的末尾的内容;输入 c$ 可以替换当前光标到行末的内容。
  4. 更改类命令的格式是:c   [number]   motion

四.文件类操作

1.定位及文件状态

输入 CTRL+g 显示当前编辑文件中当前光标所在行位置以及文件状态信息。

  1. 按下 CTRL 键不放开然后按 g 键。我们称这个键组合为 CTRL+g。

您会看到页面最底部出现一个状态信息行,显示的内容是当前编辑的文件名和文件中光标位置。

提示:您也许会在屏幕的右下角看到光标位置,这会在 'ruler' 选项设置时发生
      (参见 :help 'ruler')

  2. 输入大写 G 可以使得当前光标直接跳转到文件最后一行。

      输入 gg 可以使得当前光标直接跳转到文件第一行。

      输入行号+G,可以跳转到任意指定的行。

  3. 输入您曾停留的行号,然后输入大写 G。这样就可以返回到您第一次按下CTRL+G 时所在的行了。

2.搜索类命令

  •  输入 / 加上一个字符串可以用以在当前文件中查找该字符串。在命令模式下输入 / 字符。您此时会注意到该字符和光标都会出现在屏幕底部,这跟 : 命令是一样的。
  • 要查找同上一次的字符串,只需要按 n 键。要向相反方向查找同上一次的字符串,请输入大写 N 即可。
  • 如果您想逆向查找字符串,请使用 ? 代替 / 进行。
  • 要回到您之前的位置按 CTRL+O (按住 Ctrl 键不放同时按下字母 o)。重复按可以回退更多CTRL+I 会跳转到较新的位置。.
  • 提示:如果查找已经到达文件末尾,查找会自动从文件头部继续查找,除非 'wrapscan' 选项被复位。

3.配对括号的查找

输入 % 可以查找配对的括号 )、]、}。

  • 把光标放在本节下面标记有任何一个 (、[ 或 { 处。
  • 接着按 % 字符。
  • 此时光标的位置应当是在配对的括号处。
  • 再次按 % 就可以跳回配对的第一个括号处。
  • 移动光标到另一个 (、)、[、]、{ 或 } 处,按 % 查看其所作所为。

4.替换命令

  •  输入 :s/old/new/g 可以替换 old 为 new。
  •  输入 :s/thee/the <回车> 。请注意该命令只改变光标所在行的第一个匹配串
  •  输入 :s/thee/the/g 则是替换全行的匹配串,该行中所有的 "thee" 都会被改变。
  •  要替换两行之间出现的每个匹配串,请
  •      输入   :#,#s/old/new/g   其中 #,# 代表的是替换操作的若干行中首尾两行的行号。
  •      输入   :%s/old/new/g     则是替换整个文件中的每个匹配串。
  •      输入   :%s/old/new/gc    会找到整个文件中的每个匹配串,并且对每个匹配串提示是否进行替换。

g替换当前命令行的所有  %替换全文的所有

总结

  1. CTRL+g 用于显示当前光标所在位置和文件状态信息。
     G 用于将光标跳转至文件最后一行。
     先敲入一个行号然后输入大写 G 则是将光标移动至该行号代表的行。
     gg 用于将光标跳转至文件第一行。

  2. 输入 / 然后紧随一个字符串是在当前所编辑的文档中正向查找该字符串。
     输入 ? 然后紧随一个字符串则是在当前所编辑的文档中反向查找该字符串。
     完成一次查找之后按 n 键是重复上一次的命令,可在同一方向上查
     找下一个匹配字符串所在;或者按大写 N 向相反方向查找下一匹配字符串所在。
     CTRL-O 带您跳转回较旧的位置,CTRL-I 则带您到较新的位置。

  3. 如果光标当前位置是括号(、)、[、]、{、},按 % 会将光标移动到配对的括号上。

  4. 在一行内替换第一个字符串 old 为新的字符串 new,请输入  :s/old/new
     在一行内替换所有的字符串 old 为新的字符串 new,请输入  :s/old/new/g
     在两行内替换所有的字符串 old 为新的字符串 new,请输入  :#,#s/old/new/g。#表示行号
     在文件内替换所有的字符串 old 为新的字符串 new,请输入  :%s/old/new/g
     进行全文替换时询问用户确认每个替换需添加 c 标志             :%s/old/new/gc

五.vim中执行外部命令

1.在 VIM 内执行外部命令的方法

输入 :! 然后紧接着输入一个外部命令可以执行该外部命令。

  • 按下我们所熟悉的 : 命令使光标移动到屏幕底部。这样您就可以输入一行命令了。
  • 接着输入感叹号 ! 这个字符,这样就允许您执行外部的 shell 命令了。
  • 我们以 ls 命令为例。输入 !ls <回车> 。该命令就会列举出您当前目录的内容,就如同您在命令行提示符下输入 ls 命令的结果一样。如果 !ls 没起作用,您可以试试 :!dir 看看。

2.关于保存文件的更多信息

 ** 要将对文件的改动保存到文件中,请输入 :w FILENAME 。**

  • 输入 :!dir 或者 :!ls 获知当前目录的内容。您应当已知道最后还得敲<回车> 吧。
  • 选择一个未被用到的文件名,比如 TEST。
  • 接着输入 :w TEST  (此处 TEST 是您所选择的文件名。)
  • 该命令会以 TEST 为文件名保存整个文件 (Vim 教程)。为了验证这一点,请再次输入 :!dir 或 :!ls 查看您的目录列表内容。

请注意:如果您退出 Vim 然后在以命令 vim TEST 再次启动 Vim,那么该文件内容应该同您保存时的文件内容是完全一样的。

3.一个具有选择性的保存命令

要保存文件的部分内容,请输入 v motion :w FILENAME 

在命令模式中输入v,就进入可视模式了

  • 移动光标到本行。接着按 v 键,将光标移动至下面第五个条目上。您会注意到之间的文本被高亮了。然后按 : 字符。您将看到屏幕底部会出现 :'<,'> 。
  • 现在请输入 w TEST,其中 TEST 是一个未被使用的文件名。确认您看到了:'<,'>w TEST 之后按 <回车> 键。
  • 这时 Vim 会把选中的行写入到以 TEST 命名的文件中去。使用 :!dir 或 :!ls。确认文件被正确保存。这次先别删除它!我们在下一讲中会用到它。
  • 提示:按 v 键使 Vim 进入可视模式进行选取。您可以四处移动光标使选取区域变大或 变小。接着您可以使用一个操作符对选中文本进行操作。例如,按 d 键会删除选中的文本内容。

4.提取和合并文件

 要向当前文件中插入另外的文件的内容,请输入 :r FILENAME 

  • 请把光标移动到本行上面一行。
  • 接着通过命令 :r TEST 将前面创建的名为 TEST 的文件提取进来。您所提取进来的文件将从光标所在位置处开始置入。

提示:您还可以读取外部命令的输出。例如, :r !ls 可以读取 ls 命令的输出,并
      把它放置在光标下面。

总结

  1.   :!command 用于执行一个外部命令 command。
  2.   :w FILENAME  可将当前 VIM 中正在编辑的文件保存到名为 FILENAME 的文件中。
  3.   v motion :w FILENAME 可将当前编辑文件中可视模式下选中的内容保存到FILENAME 中。
  4. :r FILENAME 可提取磁盘文件 FILENAME 并将其插入到当前文件的光标位置后面。
  5. :r !dir 可以读取 dir 命令的输出并将其放置到当前文件的光标位置后面。

六.打开类命令

1.打开类命令——o

输入 o 将在光标的下方打开新的一行并进入插入模式。

输入小写的 o 在光标 *下方* 打开新的一行,这个命令会使您进入插入模式。

然后输入一些文字,之后按 <ESC> 键退出插入模式而进入正常模式。

为了在光标 *上方* 打开新的一行,只需要输入大写的 O 而不是小写的 o 就可以了。

2.附加类命令——a i A

 输入 a 将可在光标之后插入文本。 

  • 输入 e 直到光标位于单词的末尾。
  • 输入小写的 a 则可在光标之后插入文本了。
  • 将单词补充完整,之后按 <ESC> 键退出插入模式回到正常模式。

提示:a、i 和 A 都会带您进入插入模式,惟一的区别在于字符插入的位置。

3.另外一个置换类命令的版本——R

输入大写的 R 可连续替换多个字符。

  1. 请将光标移动到本节中下面标记有 ---> 的第一行。移动光标到第一个 xxx 的
     起始位置。

  2. 然后输入大写的 R 开始把第一行中的不同于第二行的剩余字符逐一输入,就
     可以全部替换掉原有的字符而使得第一行完全雷同第二行了。

  3. 接着按 <ESC> 键退出替换模式回到正常模式。您可以注意到尚未替换的文本
     仍然保持原状。

提示:替换模式与插入模式相似,不过每个输入的字符都会删除一个已有的字符。

4.复制粘贴文本

 使用操作符 y 复制文本,使用 p 粘贴文本 

  1. 定位到下面标记有 ---> 的一行,将光标移动到 "a)" 之后。

  2. 接着使用 v 进入可视模式,移动光标到 "first" 的前面。

  3. 现在输入 y 以抽出(复制)高亮的文本。

  4. 然后移动光标到下一行的末尾:j$

  5. 接着输入 p 以放置(粘贴)复制了的文本。然后输入:a second <ESC>。

  6. 使用可视模式选中 " item.",用 y 复制,再用 j$ 将光标移动到下一行末尾,用 p 将文本粘贴到那里。

  提示:您还可以把 y 当作操作符来使用;例如 yw 可以用来复制一个单词。

5.设置类命令的选项

设置可使查找或者替换可忽略大小写的选项 

  1. 要查找单词 ignore 可在正常模式下输入 /ignore <回车>。要重复查找该词,可以重复按 n 键。

  2. 然后设置 ic 选项(Ignore Case,忽略大小写),请输入: :set ic

  3. 现在可以通过键入 n 键再次查找单词 ignore。注意到 Ignore 和 IGNORE 现在也被找到了。

  4. 然后设置 hlsearch 和 incsearch 这两个选项,请输入: :set hls is

  5. 现在可以再次输入查找命令,看看会有什么效果: /ignore <回车>

  6. 要禁用忽略大小写,请输入: :set noic

提示:要移除匹配项的高亮显示,请输入:  :nohlsearch
提示:如果您想要仅在一次查找时忽略字母大小写,您可以使用 \c: /ignore\c <回车>

总结

 1. 输入小写的 o 可以在光标下方打开新的一行并进入插入模式。
     输入大写的 O 可以在光标上方打开新的一行。

 2. 输入小写的 a 可以在光标所在位置之后插入文本。
     输入大写的 A 可以在光标所在行的行末之后插入文本。

  3. e 命令可以使光标移动到单词末尾。

  4. 操作符 y 复制文本,p 粘贴先前复制的文本。

  5. 输入大写的 R 将进入替换模式,直至按 <ESC> 键回到正常模式。

  6. 输入 :set xxx 可以设置 xxx 选项。一些有用的选项如下:
        'ic' 'ignorecase'       查找时忽略字母大小写
        'is' 'incsearch'        查找短语时显示部分匹配
        'hls' 'hlsearch'        高亮显示所有的匹配短语
     选项名可以用完整版本,也可以用缩略版本。

  7. 在选项前加上 no 可以关闭选项:  :set noic

七.获取帮助信息

1.获取帮助信息

 使用在线帮助系统 

  Vim 拥有一个细致全面的在线帮助系统。要启动该帮助系统,请选择如下三种方
  法之一:
        - 按下 <HELP> 键 (如果键盘上有的话)
        - 按下 <F1> 键 (如果键盘上有的话)
        - 输入  :help <回车>

  请阅读帮助窗口中的文字以了解帮助是如何工作的。
  输入 CTRL-W CTRL-W   可以使您在窗口之间跳转。
  输入 :q <回车> 可以关闭帮助窗口。

  提供一个正确的参数给":help"命令,您可以找到关于该主题的帮助。请试验以
  下参数(可别忘了按回车键哦):

        :help w
        :help c_CTRL-D
        :help insert-index
        :help user-manual

2.创建启动脚本

 启用 Vim 的特性 

  Vim 的功能特性要比 Vi 多得多,但其中大部分都没有缺省启用。为了使用更多的
  特性,您得创建一个 vimrc 文件。

  1. 开始编辑 vimrc 文件,具体命令取决于您所使用的操作系统:
        :edit ~/.vimrc          这是 Unix 系统所使用的命令
        :edit $VIM/_vimrc       这是 MS-Windows 系统所使用的命令

  2. 接着读取 vimrc 示例文件的内容:
        :r $VIMRUNTIME/vimrc_example.vim

  3. 保存文件,命令为:
        :write

  下次您启动 Vim 时,编辑器就会有了语法高亮的功能。
  您可以把您喜欢的各种设置添加到这个 vimrc 文件中。
  要了解更多信息请输入 :help vimrc-intro

3.补全功能

使用 CTRL-D 和 <TAB> 可以进行命令行补全

  1. 请确保 Vim 不是在以兼容模式运行: :set nocp

  2. 查看一下当前目录下已经存在哪些文件,输入: :!ls   或者  :!dir

  3. 现在输入一个目录的起始部分,例如输入: :e

  4. 接着按 CTRL-D 键,Vim 会显示以 e 开始的命令的列表。

  5. 然后按 <TAB> 键,Vim 会补全命令为 :edit 。

  6. 现在添加一个空格,以及一个已有文件的文件名的起始部分,例如: :edit FIL

  7. 接着按 <TAB> 键,Vim 会补全文件名(如果它是惟一匹配的)。

提示:补全对于许多命令都有效。您只需尝试按 CTRL-D 和 <TAB>。
      它对于 :help 命令非常有用。

总结

  1. 输入 :help 或者按 <F1> 键或 <Help> 键可以打开帮助窗口。

  2. 输入 :help cmd 可以找到关于 cmd 命令的帮助。

  3. 输入 CTRL+W CTRL+W  可以使您在窗口之间跳转。

  4. 输入 :q 以关闭帮助窗口

  5. 您可以创建一个 vimrc 启动脚本文件用来保存您偏好的设置。

  6. 当输入 : 命令时,按 CTRL+D 可以查看可能的补全结果。
     按 <TAB> 可以使用一个补全。


 

  • 1
    点赞
  • 59
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值