本文是下载的文本,不知道作者是谁。
  刚开始学习,若有错误处请指出,共同进步。
  QQ 群 号:513683159
  最好还是使用文本在虚拟机里直接学习会比较好些,文档上传到群里了。


总结:


vim工作模式


在这里插入图片描述


插入命令


在这里插入图片描述


定位命令


在这里插入图片描述


删除命令


在这里插入图片描述


替换或取消命令


在这里插入图片描述


搜索和搜索替换命令


在这里插入图片描述


保存或退出命令


在这里插入图片描述


一些小技巧


  ①导入命令执行结果:r !命令
    r !data 导入时间
  ②定义快捷键:map快捷键触发命令
    范例  : map P I#< ESC >
        : map ‘B 0x


  ③连续行注释
    :n1,n2s/^/#/g
    :n1,n2s/^#/lg
    :n1,n2s/^/g
PS:
  ^ 表示行首
  g 表示不用确认
  c 表示需要确认
  ④替换:ab mymail samlee@ lampbrother.net


修改配置文件


  若想保存快捷键等一些操作,重启后不会失效,需要将这些操作写到该用户目录下的配置文件中。
  如:以root用户为例,
  vi /root/.vimrc   进入后就可以编辑配置文件。


欢迎使用VIM教程 1.7版


  VIM是一个强大的编辑器,它拥有大量的命令,不可能在本教程中全部解释。但是,本教程描述了足够多的命令,使你能轻松将VIM作为通用编辑器。
  完成本教程的时间大约是25-30分钟,主要依赖于你在实验中花去的时间。
  注意:
    本课程中的命令会改变本文的内容,请创建一个副本来练习(如果你用命令“vimtutor”开始,本文已经是自动生成的副本了)。
     这是由于该教程是一个.md的文档,所以可以直接用vim编辑器打开,边看边学习,很明显还是建议重新打开一个新的。


lesson1


1.1 移动光标


       ^      h:光标左移
       k       j:光标下移
     < h   l >     k:光标上移
       j        l:光标右移
       v      
  看上示意图,可知:通过对应字母可实现对光标的移动。
  注意:若你不确定你按下了什么(导致变成输入字母的话),按回到正常模式。就可以继续使用字母键移动,方向键效果相同,但hjkl键会使你移动得更快,只要你熟悉了它。


1.2 退出VIM


  按下< ESC >键(确保你处于正常模式).
  直接输入   :q!  
  此命令使编辑器退出并放弃你作的作用改动。(即不保存对文本的编辑[强制])


1.3 文本编辑之删除


  按下< ESC >键(确保你处于正常模式).
  移动光标到你想修复的位置。
  直接按下 x 键。
  已经删除光标处的字符。


1.4 文本编辑之插入


  按下< ESC >键(确保你处于正常模式).
  移动光标到你想修复的位置。
  直接按下 i 键,进入插入模式(按下你会发现页面左下角出现— INSERT —)。
  此时,你就可在光标处键入对应字符。


1.5 文本编辑之追加(不太清楚跟上面的区别)


  按下 < ESC > 键(确保你处于正常模式).
  移动光标到你想修复的位置。
  直接按下 a 键,进入插入模式(按下你会发现页面左下角出现— INSERT —)。
  此时,你就可在光标处键入对应字符。


1.6 保存并退出VIM


  按下< ESC >键(确保你处于正常模式).
  直接输入   :wq  
  此命令使编辑器退出并放弃你作的作用改动。(即不保存对文本的编辑[强制])


lesson 2


2.1 删除命令


键入 dw 以删除一个单词.
  按下 < ESC > 键(确保你处于正常模式).
  移动光标到你想删除的单词头。
  键入   dw   以使该单词消失(被删除)。
  注意: 当你键入d时,字d 会在屏幕最低处显示,此时VIM在等待你键入w。 当你错误的键入时,你会看见其它的字符而非d;按下 <ESC> 重新开始。


2.2 其他的删除命令


键入 d$ 以删除光标到行尾间处的字符.
  按下 < ESC > 键(确保你处于正常模式).
  移动光标到正确行的末端。
  键入   d$   以使行尾字符消失(被删除)。


2.3 关于操作码和对象


  许多修改文本的命令由两部分组成:操作码和对象
  删除命令d的格式如下:
            d 对象
其中:
    d -是操作码
    对象-是操作码要操作的对象(译者:更确切地说应是范围吧?)(罗列在下方)


关于对象的小清单:
  w   -到下一个单词头,除开所在的第一个字符。
  e   -到下一个单词尾,包括所在单词的最后一个字符。
  $  - 到行尾,包括了最后一个字符。
  0  - 到行首,包含空格。
  ^   -到行首,不含空格。
  G   -到文本最后一行首
  gg   -到文本首行。


  所以de会删除光标处到单词尾下的字符。
  : 不带操作码按下对象键时,仅会按对象指定的方式 移动光标。


2.4 对对象使用计数


在对象前键入重复的次数.
  按下 < ESC > 键(确保你处于正常模式).
  键入 2w 以使光标向后移动两个单词。
  键入 3e 以使光标向后移动到第三个单词尾。
  键入 0 移动到行首。


2.5 使用计数以删除得更多


为操作码键入 一个数字,使之重复多次
  合并上文提到的删除操作码和对象,在对象前插入一个数字以删除更多
        d  数字  对象
  1.移动光标到以下以—>标记的行的第一个大写单词处。
  2.键入 d2w 以删除2个大写 单词。
  3.用不同的计数重复步骤1和2,以一个命令删除多个连续的大写单词。


2.6 删除行的操作


键入 dd 以删除一整行
  由于需要频繁的删除一整行,vi的设计者决定通过简单的键入两d轻松删除一整行。
  按下 < ESC > 键(确保你处于正常模式).
  移动光标到你想删除的行。
  键入 dd 以删除行(删除该行)
  若键入 2dd 以删除后两行


2.7恢复命令


按下u 以恢复最后的命令,U 是修复一整行
  1. 按下 < ESC > 键(确保你处于正常模式)
  2.移动光标到以—>标记的行,定位到第一处错误。
  3. 键入 x 以删除第一个不要的字符。
  4. 现在 键入 u 以恢复最后执行的命令。
  5. 这次用x命令修复该行的所有错误。
  6. 现在键入一个大写的 U 以回到行的原始状态。
  7.现在按几次 u 以恢复U和之间的命令。
  8. 现在 按几次 CTRL+R(按住CTRL同时敲击R),以撤消恢复命令(与u命令相反)。


Lesson 3


3.1 PUT命令


输入 p 以在光标处粘贴先前删除的文本.
   按下 < ESC > 键(确保你处于正常模式)
   移动光标到以下以—>标记的行。
   输入 dd 以删除该行,该行会被存储至VIM寄存器中。
   移动光标到c)行,即被删除行要到达的前行
   键入 p 将那行粘贴到光标之下
  PS:有点像剪切(dd)和粘贴(p).


3.2 替换命令


   按下 < ESC > 键(确保你处于正常模式)
   移动光标到以下以—>标记的行。
  键入 r 和要更正的字符
  PS:按下r键进入替换模式,移动光标,替换按下字母替换光标处.


3.3 变更操作码


要变更光标到词尾,键入:ce
   按下 < ESC > 键(确保你处于正常模式)
   移动光标到以下以—>标记的行。
  键入 ce 和 正确的单词
  注意:ce 是删除单词并定位到插入模式(译者:其实后面的e就是对象,而前面的 c是操作码)


3.4 其它的c更改命令


同delete 命令一样,更改操作码也使用相同的对象
  更改操作码的用法与删除操作码相同,格式为:
     c  [number]  motion
  所有的对象是相同的,例如w(单词)、$(行尾)。
  移动到以下以—>标记的第一行。
  键入 c $ 和 余下的同第二行相同的字等符,并按下
  注: 在键入时,你可以使用退格以删除错误。


Lesson 4


4.1 光标定位和文件状态


键入 CTRL-G 以显示你在文件中的位置和状态.
键入G 以移动到文件行尾
  1.按住CTRL键,并键入 g. 我们称之为CTRL-G。在页面的底部会呈现一个信息,指出文件名和当前文件位置。记住行号以在第三步使用。
  注: 你可能见到 处于屏幕右下角的光标,这发生在设置了‘ruler’选项时(见 :hlep ‘ruler’)
  2.按 G 以移动到文件底。键入 gg 以移动到文件首。
  3.键入你之前所在的行号,然后键入 G。这样你会返回到你之前,即你按CTRL-G时的那一行。


4.2 搜索命令


按 / 并接一个要搜索的短语.
  1.在正常模式,键入 / 字母。注意,像:命令一样,光标会出现在屏幕底
  2.现在,键入 ‘errroor’.这是你想要搜索的单词。
  3.想再次搜索相同的短语,简单的键入 n.
  想再次搜索相同的短语并以相反的方向,键入 N.
  4.要反向搜索一个短语,使用?替换/.
  5.要返回之前的位置,键入 CTRL-O(按住 CTRL时,按下字母o).重复几次回到
更早的那刻。CTRL-I是向前移动
  注: 当搜索到达文件尾时,它会从文件头开始搜索,除非’wrapscan’选项被设置了


4.3 括号匹配搜索


键入 % 以找到所匹配的),],or }.
  1.在以—>标记的行中,将光标定位到任一的(,[,{.
  2.现在按下 %字符。
  3.将光标移动到匹配的括号上
  4.按 % 以移动光标到其它的匹配括号
  5.移动光标到 另外的(,),[,],{ or },看看 % 是怎么做的
  注:在高度程序的非匹配括号是这个是相当有用的。


4.4 替换命令


键入: s /old/new/g 以用’new’替换‘old’。
  1.移动光标到以下以—>标记的行。
  2.键入 : s/thee/the .注意此命令仅会更改本行的第一例”thee”.
  3.现在 键入 : s/three/the/g. 加入的 g 标志 意味着 会替换本行所有的“thee”.
  4.要更改两行间的所有的匹配字符串:

    - type :#,#s/old/new/g 其中,#,#是要更改的行号的范围
    - type :%s/old/new/g 更改全文件中的所有事件。
    - Type :%s/old/new/gc 更改全文件中的所有事件,并给出替换与否的提示。


lesson 5


5.1 怎样执行外部命令


按 :! 并加上要执行的外部命令
  1.键入类似的命令 : 使光标处于屏幕底。这允许你键入一个命令行。
  2.现在键入 ! 字符。这允许你执行一个任何外部的shell命令
  3.作为一个例子,键入 ls 接一个!,然后敲击.这会显示一个你的目录,就像你在一个shell提示符一样。或者 使用 :!dir (如果 ls不起作用的话)
  注: 通过这种方式执行任何的外部命令是可能的,同样可以跟参数
  注: 所有的 : 命令必须以敲击结束。从这里开始,我们不会问题提及这些问题。


5.2 其它的写文件命令


要保存对文本作的改动,键入 :w FILENAME.
  1.键入 :!dir or :!ls 以得到你的目录的清单。
  2.选择一个不存在的文件名,如TEST。
  3.现在 键入 : :w TEST (其中的TEST是你选择的文件名)
  4.这会以TEST的名字 保存全部文件(即这个 VIM教程)。
  要确认之,请键入 :!dir or :!ls 以查看你的目录。
  注:如果你之前退出了VIM并以vim TEST再次启动了它,这个文件就会是你保存时的教
程的副本。

  5.现在键入以下命令删除这个文件:
  (MS-DOS): :!del TEST   or   (Unix): :!rm TEST


5.3 选择要写的文本


  1.移动光标到此行。
  2.按 v 并移动 光标到 以下的第5项。注意这些文本会珵高亮。
  3.按 :字符。在屏幕底会显示 :’<,’> will appear.
  4.按 w TEST ,其中 TEST 是一个不存在 的文件。确认你按前你看到了:’<,’>w TEST.
  5.vim 会把选定的行进文件TEST中,使用 :!dir or !ls 作检查。
  注: 按下v 开始选择选择。你可以将光标移动到其它地方以使选择的区变大或者 变小。
然后你可使用操作码对文本做一些事。比如,d 删除文件


5.4 恢复和合并文件


要插入一个文件的内容键入:r FILENAME
  1.只需将光标放到这一行
  2.现在恢复你的TEST文件,使用命令 :r TEST 其中,TEST 是你使用的文件。
你要恢复的文件将被放置在光标行下面。
  3.要确认文件被恢复了,用光标返回,
  注: 你可能会阅读外部命令的输出。如 :r !ls 读入ls命令的输出并将其放置到
光标下。


lesson 6


6.1 OPEN 命令


键入 o 以在光标打开一行,并置于插入模式
  1.移动光标到以—>标记的行。
  2.键入小写字母 o 以在光标下插入一行,并置于插入模式
  3.现在键入 一些文本,并按 < esc > 以退出插入模式
  4.要在光标前插入一行,只需键入 大写字母 O,而非小写字母 o,在下一行试试


6.2: 追加命令


键入 a 以在光标后插入文本
  1.移动光标到以—>标记的行。
  2.按 e 直到 光标在li 尾。
  3.键入 a(小写) 以追加文本到光标后
  4.按照下一行完成这个单词。按< esc >退出插入模式。
  5.使用 e 移动到未完成的单词,并重复步骤3和4.
  注: a,i 和A 都会进入插入模式,仅有的不同是字符在哪里插入。


6.3 以别一种方式替换


键入 大写 R 以替换 更多的字符而非一个
  1.移动光标到以—》标记的第一行。移动光标到第一个XXX。
  2.现在 按下 R 并键入 在第二行显示的数字,以其替换xxx.
  3.按下< ESC > 以 离开替换模式。注意 剩余的行仍没有改变。
  4.重复以上步骤以替换剩余的XXX。
  注: 替换模式下类似于插入模式,但是键入字符会删除已经存在的字符


6.4 复制粘贴文本


用y 操作码来复制文本,以 p 粘贴此文本.
  1.移动到以—>标记的行并定位到“a)”后。
  2.以v 开启选择模式,移动光标到“first”前。
  3.按 y 以复制高亮的文本。
  4.移动 光标到下一行的:j$
  5.按p 以粘贴文本,然后键入:a second < esc >.
  6.使用选择模式以选择” item。“,以y复制之,以j$移动到下行并以p粘贴到那里。
  注: 你可能会使用y 作操作码;yw 复制一个单词。


6.5 设置选项


设置搜索和替换时忽略大小写的选项.
  1.搜索’ignore‘ ,键入 : /ignore \ < enter >重复按n几次。
  2.设置 ’ic‘(忽略大小写)选项,键入: :set ic
  3.现在 以n再次搜索’ignore’. 注意,Ignore and IGNORE都可以被搜到。
  4.设置选项’hlsearch’ and ‘incsearch’: set hls is
  5. 同在键入搜索命令,看看发生 了什么: /ignore \ < enter >
  6.要禁止忽略大小写,键入: :set noic 注意: 要删除高亮匹配,键入: :nohlsearch
  注: 如果 你只是想在某次搜索命令时忽略大小写,在短语后加上\c: /ignore\c \ < enter >


lesson 7


7.1 使用帮助


使用在线帮助系统.
  vim 有一个广泛的在线帮助系统。要启用之,可试试这三种之一:
    - 按 <help> (如果你有)
    - 按 <F1> (如果你有)
    - 按 :help <enter>
  阅读help窗口以查看help是如何进行的。
    Type CTRL-W CTRL-W 从一个窗口跳转到另一个窗口。
    Type :q <ENTER> 关闭帮助 窗口。
  你可以通过为”:help”给一个参数找到任何主题的帮助,试试这些(别忘了<enter>)
    :help w
    :help c_CTRL-D
    :help insert-index
    :help user-manual


7.2节:创建启动脚本


启用VIM特性.
  VIM 拥有比vi更多的特性,但是大多数是被默认禁止的。要使用更多的
特性,你可创建“vimrc”文件。
  1.开始编辑“vimrc”文件,这依赖于你的系统。
    :e ~/.vimrc for Unix
    :e $VIM/_vimrc for MS-Windows
  2. 现在阅读下“vimrc”文件的例子:
    :r $VIMRUNTIME/vimrc_example.vim
  3. Write the file with:保存文件
    :w
  下次,你启动VIM后,它会使语法高亮,你可以在“vimrc”中添加所有你喜欢的
设置。
    更多信息请键入 :help vimrc-intro


7.3节:补齐


使用CTRL-D和<TAB>使命令行补齐
  1.确保VIM 处于非兼容模式: :set nocp
  2.看看目录下有什么文件存在: :!ls or :!dir
  3.键入命令的开始部分: :e
  4.按 CTRL-D ,VIM会显示以“e”开头的清单。
  5.按下<TAB>,VIM会以“:edit”补齐命令名。
  6.现在 添加一个空格和己存的文件名头部: :edit FIL
  7.按<tab>,vim会完成余下的文件名(如果它是独有的话)。
  注:补齐针对大多数命令有效,只需按CTRL-R和<TAB>.特别是对 :help 非常有用