[Linux实用命令]-2-Vim文本编辑器常用命令

引言

这篇文章主要介绍Linux中Vim文本编辑器的使用方法,Vim编辑器是在Vi编辑器之后被开发出来的,Vi和Vim的一些基础命令都大同小异,它们默认被当前大多数的Linux发行版所安装(默认安装Vi的居多,Vim可能需要手动安装);本文使用Vim编辑器举例,方法同样适用于Vi编辑器。

文章目录

  • 0×1.Vim编辑器输入模式介绍
  • 0×2.Vim编辑器命令模式常用命令
  •      a.控制光标的移动
    
  •      b.删除文字操作
    
  •      c.复制和粘贴操作
    
  •      d.字符替换操作
    
  • 0×3.Vim编辑器底行模式下常用命令
  • 0×4.Vim编辑器可视化模式(Visual Mode)常用命令

0×1.Vim编辑器输入模式介绍

在介绍Vim的几种模式之前,先简单的介绍一下Vi和Vim:

Vim编辑器是所有Unix及Linux系统下最基本的文本编辑器,有点类似Windows下的记事本程序(Notepad.exe),但Vim编辑器比Windows下的记事本的功能强大很多。

Vim编辑器有四种常用模式,分别是命令模式、编辑模式、底行模式和可视化模式(Visual Mode)请看下面的实例:

#部分Linux发行版可能需要先安装,例如Ubuntu可以使用下面的命令先安装vim编辑
[email protected]:~$ sudo apt-get install vim
 
#使用vim命令后面自定义一个文件名,可以创建一个新的文本文件,并且进入这个文本文件的命令模式下。
[email protected]:~$ vim testfile
 
#新创建文件或者打开一个存在的文件,默认进入的是命令模式,命令模式是不能输入和编辑文本的,只能识别键盘的字母命令,在命令模式下有三种方式可以进入编辑模式
#按i 当前光标位置进入编辑模式,
#按a 当前光标退一格进入编辑模式,
#按o 另起一行进入编辑模式。
~
"testfile" [New File]
 
#按i进入编辑模式后就能输入和编辑文本了,随便输入下面几行
Hello!
Welcome to My Website:
QingSword.com
 
sentence 12345
~
-- INSERT -- #进入编辑模式后下面会显示"INSERT",如果安装了中文环境就是"插入"
 
#输入完成后按"esc"键退出编辑模式,回到命令模式,此时文件还没有保存,如果想保存刚才的输入,可以在命令模式下输入":"(英文输入法下的说明号),输入:就进入了"底行模式",":"后面可以输入底行模式所支持的命令。
 
Hello!
Welcome to My Website:
QingSword.com
 
sentence 12345
~
:w otherfile    #会将文件另存为"otherfile"
:q      #退出而不保存修
:q!     #强行退出而不保存修改(未修改的文件可以直接:q,而修改过不想保存修改的必须强制:q!)
:wq     #退出保存修改 
#这里我使用":wq"退出保存修改,查看一下刚才的输入被保存到文件中了
[email protected]:~$ more testfile
Hello!
Welcome to My Website:
QingSword.com
 
sentence 12345
 
#在Vim的命令模式下进入可视化模式的方法有三种:
#输入v进入字符可视化模式,使用光标选择是以字符为单位的
#输入V(大写)进入行可视化模式,使用光标选择是以行为单位的
#使用"CRTL+v"组合键,进入块可视化模式,可以使用光标选择一个矩形区域。
#可视化模式的使用方法将在本文的第4小节中详细说明

很多朋友初次使用Vim时,进入了命令模式,尝试改动文本的时候发现无法选择,也无法输入,顿时觉得Vim乱七八糟各种不好用,其实是因为不理解上面所说的几种模式,当使用熟练后就会发现,这种设计比鼠标编辑文本的效率要高很多。

Vim的四种输入模式介绍完毕,下面看Vim的命令模式下都有哪些常用的命令。

0×2.Vim编辑器命令模式常用命令

Vim的命令模式下是不能使用退格键或鼠标来编辑文本的,但Vim提供了各种复杂的命令用于在命令模式下编辑文本。

a.控制光标的移动

命令行模式下键盘上的hjkl这四个键和键盘上箭头键的对应关系如下,使用hjkl或者键盘上的箭头按键的效果是一样的:

h j k l
← ↓ ↑ →

使用下面的组合键可以快速移动光标:

[ctrl]+[b] 向上移动一页 backward;
[ctrl]+[f] 向下移动一页 forward;
[ctrl]+[u] 向上移动半页 up;
[ctrl]+[d] 向上移动半页 down;
[g] (小写g)按两下回到文章开头;
[G] (大写G)按一下到文章末尾;
[0] 回到光标行行首;
[$] 到光标行行末;
[w] 光标移动到下一字第一个字母;
[e] 到下一字尾字母;
[b] 到前一字首字母;
[#l] 向后移动#位置(如果到达行末则停留),例如:3l 光标向后移动3位;

上面这些组合键中,个人觉得比较实用的几个按键是翻页,到文章顶部或底部,以及去往行首和行末。

b.删除文字操作

使用下面这些按键或按键组合可以快速删除一段或单个字符:

[x] 删除光标所在位置的那个字符;
[#x] 包括光标位置的字符向后删除#个;比如3x,删除3个字符;
[X] 向前删除一个字符(光标所在位置前面那个字符被删除);
[#X] 向前删除#个字符,同上;
[cw] 删除从光标位置到词尾的全部字符,删除后直接进入编辑模式。比如:"test vi application"光标在e上,输入cw将删除"est";
[c#w] 从光标位置开始,向后删除#个单词,删除后直接进入编辑模式;比如"test vi application"光标在e上,输入c2w将删除"est vi";
[dd] 删除光标所在行;
[#dd] 向下删除#行(包括光标所在行);比如,输入"3dd",就是包括光标所在行向下删除3行;
[u] 回退操作,退回上一步,遇到误操作时,这个按键非常有用,它可以逐步退回;

c.复制和粘贴操作

使用下面这些按键或按键组合可以快速复制粘贴一段或单个字符:

[yw] 复制光标所在位置到单词结尾的部分。比如:"test vi application"光标在e上,则复制"est";
[#yw] 复制从光标位置,往后的#个字;比如:"test vi application This is free software"光标在e上,输入"3yw"则复制"est vi application";
[yy] 复制光标所在行;
[#yy] 包括光标所在行向下复制#行,比如:"4yy"则向下复制4行;
[p] 粘贴,如果复制的是一行或几行,按下p键的时候,会向下另起一新行粘贴刚才复制的这几行;如果复制的是一个单词或几个单词,按下p键的时候,会在当前光标位置后面粘贴出刚才复制的内容;

d.字符替换操作

[r] 替换单个字符。如:"test vi application"光标在e上,按一下r,然后输入s,"test"就变成了"tsst";
[R] 替换多个字符。按下这个键后vi界面底部会显示"REPLACE",此时输入的字符会直接覆盖后面的字符,直到按下esc键;

[ctrl]+[g] 在文本底部显示文件名、是否修改、文件是否为只读、有多少行、当前光标所在位置占%多少,显示如下:
"filename" [Modified][readonly] line 30 of 187 16% col 15

0×3.Vim编辑器底行模式下常用命令

末行模式常用命令(:)

:set nu 显示行号;
:4 跳到第四行;
:/word 查找某字(回车后按n向下递归查找,按N向上递归查找),比如查找"is",命令就是":/is";
:10,s),到最后一行(/g),将"is"替换成"was";
:%s/is/was/g 如果是从第一行到最后一行,直接使用%s即可,这一句的意思是从第一行到行末,将"is"替换成"was";

0×4.Vim编辑器可视化模式(Visual Mode)常用命令

Vim编辑器的可视化模式(Visual Mode)允许使用光标选择一个高亮区域,然后对这个区域中的内容进行编辑操作。

假设我用vim打开一个文件,里面的内容如下,光标在红色1的位置,现在可以通过按下"Ctrl+v"进入可视化编辑模式的块模式:

1 file edit view scrollback bookmarks
2 file edit view scrollback bookmarks
3 file edit view scrollback bookmarks
4 file edit view scrollback bookmarks

复制、粘贴、删除块区域实例:

将光标向下移动两格,再向右移动到view的末尾,会选一个矩形区域。使用键盘上的小写"d",可以删除这个选择区域中的字符;使用小写的"y"可以复制选中的内容,然后可以使用"p"将刚才复制的矩形区域粘贴到光标所在位置;

1 file edit view scrollback bookmarks
2 file edit view scrollback bookmarks
3 file edit view scrollback bookmarks
4 file edit view scrollback bookmarks

块区域转换大小写实例:

选中一个块区域,然后可以使用键盘上的"Shift+~(1前面那个键)"来将选择的区域中的字符大小写转换;

1 FILE EDIT VIEW scrollback bookmarks
2 FILE EDIT VIEW scrollback bookmarks
3 FILE EDIT VIEW scrollback bookmarks
4 file edit view scrollback bookmarks

增加缩进和减少缩进实例:

将光标移动到你要增加缩进的开头一行,比如3,然后按"Ctrl+v",将光标向下移动到4的位置,之后按"Shift+>"就能增加缩进;使用相同的方法选中需要减少缩进的行,按"Shift+<"来减少缩进;

1 FILE EDIT VIEW scrollback bookmarks
2 FILE EDIT VIEW scrollback bookmarks
3 FILE EDIT VIEW scrollback bookmarks
4 file edit view scrollback bookmarks

将选中区域使用rot13算法加密实例:

选中一个矩形区域,按键盘上的小写"g"再输入一个"?",选中的区域将被使用rot13加密;解密的方法就是再对这个区域执行一次加密;

1 svyr rqvg ivrj scrollback bookmarks
2 svyr rqvg ivrj scrollback bookmarks
3 svyr rqvg ivrj scrollback bookmarks
4 file edit view scrollback bookmarks

你可能感兴趣的:([Linux实用命令]-2-Vim文本编辑器常用命令)