欢迎光临
感受代码之美

Linux编辑器vi/vim查找/复制/剪切/粘贴/替换/删除命令整理

vi的相关模式:

  • 命令模式:在Linux终端中输入“vim 文件名”就进入了命令模式,但不能输入文字。
  • 编辑模式:在命令模式下按i就会进入编辑模式,此时就可以写入程式,按Esc可回到命令模式。
  • 末行模式:在命令模式下按:进入末行模式,左下角会有一个冒号出现,此时可以敲入命令并执行。
  • 可视化(VISUAL)模式:在命令模式下按v就会进入可视化模式,按Esc可回到命令模式。

linux-vi.jpg

1.搜索/查找

在命令模式下,按/键进入查找模式,输入要查找的字符串并回车会跳转到第一个匹配的字符。按下n查找下一个,按下N查找上一个。

默认情况下,vi采用大小写敏感查找,具体设置,需要编辑~/.vimrc文件,并添加如下内而容:

#设置默认进行大小写不敏感查找
set ignorecase

#如果有一个大写字母,则切换到大小写敏感查找
set smartcase 

大小写敏感查找,点击Esc,然后输入’/’,进入查找模式,在查找模式中加入\c表示大小写不敏感查找,\C表示大小写敏感查找:

#大小写不敏感
/foo\c

2.复制&粘贴

1)复制光标当前所在行

操作:

命令模式下,按yy可以复制光标所在行,然后按p可以进行粘贴。

2)复制光标当前所在行及以下n-1行

操作:

命令模式下,按nyy可以复制光标所在行及以下n-1行,然后按p可以进行粘贴。

3)将x-y行,复制到第n行下方所在位置

末行模式下,按x,y co n,可以将x到y行的内容,复制到第n行下方。

示例

将2-3行内容复制到第7行下方。

命令

:2,3 co 7

命令执行前:

      1     server {
      2         listen       80;
      3         server_name  www.4spaces.org;
      4         index  index.html index.htm;
      5         root   /etc/nginx/html/;
      6     }
      7 

命令执行后:

      1     server {
      2         listen       80;
      3         server_name  www.4spaces.org;
      4         index  index.html index.htm;
      5         root   /etc/nginx/html/;
      6     }
      7 
      8         listen       80;
      9         server_name  www.4spaces.org;

3.剪切&粘贴

1)剪切光标当前所在行

操作:

命令模式下,按dd可以剪切光标所在行,然后按p可以进行粘贴。

2)剪切光标当前所在行及以下n-1行

操作:

命令模式下,按ndd可以剪切光标所在行及以下n-1行,然后按p可以进行粘贴。

3)将x-y行,剪切到第n行下方所在位置

末行模式下,按x,y m n,可以将x到y行的内容,剪切到第n行。

示例

将2-3行内容剪切到第5行。

命令

:2,3 m 5

命令执行前:

      1     server {
      2         listen       80;
      3         server_name  www.4spaces.org;
      4         index  index.html index.htm;
      5         root   /etc/nginx/html/;
      6     }
      7 

命令执行后:

      1     server {
      2         index  index.html index.htm;
      3         root   /etc/nginx/html/;
      4         listen       80;
      5         server_name  www.4spaces.org;
      6     }   
      7 

4.查找&替换

1)全局查找替换

示例:

查找foo,并替换为bar

操作:

先按Esc键,再按:键,输入:%s/foo/bar/g,然后回车,这样就完成了全文查找替换操作。

命令:

:%s/search_word/replace_word/g

2)全局所有行查找替换每行出现的第一个匹配字符

示例:

查找foo,并替换为bar

操作:

先按Esc键,再按:键,输入:%s/foo/bar/,然后回车,这样就完成了每行出现的第一个匹配字符查找替换操作。

命令:

:%s/search_word/replace_word/

3)替换当前行所有匹配字符

示例:

在当前行查找foo,并替换为bar

操作:

先按Esc键,再按:键,输入:s/foo/bar/g,然后回车,这样就完成了全文查找替换操作。

命令:

:s/search_word/replace_word/g

5.删除

1)删除光标所在行

#命令模式下,按dd可删除光标所在行
dd

2)删除光标当前行及以下n-1行

#命令模式下,按3dd可删除光标所在行及以下2行(共删除3行)
3dd

3) 删除指定行

示例:

删除1,3行

操作:

在末行模式下,按1,3d,然后回车。

命令:

#末行模式下,按“1,3d”,然后回车
:1,3d

4)删除光标所在处,直到当前单词的最开头字符

db

5) 删除光标所在处,直到当前单词的结尾字符

dw

6) 删除光标所在处直到行首

d0

7)删除光标所在处,直到行尾

D

6.替换

1)替换当前光标所在位置

命令模式下,按r键,替换光标所在位置字符。

2) 替换当前光标所在位置及其后面字符

命令模式下,按R键,进入替换模式,输入字符,开始从当前光标所在位置开始往后替换字符,指导按Esc退出替换模式。

7.撤销

命令模式下按u,进行撤销。

8.显示/取消行号

  • 显示行号:末行模式下,按set nu,设置显示行号;
  • 取消行号:末行模式下,按set nonu,设置取消行号;

9.插入一行

  • 当前行下方插入一行:在命令模式下,按o在当前行下方插入一行,并自动进入编辑模式;
  • 当前行上方插入一行:在命令模式下,按O在当前行上方插入一行,并自动进入编辑模式;

参考文章:

  1. UNIX / Linux: vi / vim perform search and replace operation
  2. vi Find And Replace Text Command
  3. 在 Vim 中优雅地查找和替换
  4. vim使用技巧(插入,删除,查找,复制,粘贴,剪切)
转载请注明来源:四个空格 » Linux编辑器vi/vim查找/复制/剪切/粘贴/替换/删除命令整理

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址