linux下Vi/Vim编辑器操作

Linux中运行的文本编辑器很多,每个人喜欢的也不一样。但是不同的Linux发行版一定会内置Vi编辑器,其它编辑器可能不会内置,需要自己安装。所以必须学会Vi的使用,以应对在不同的的Linux环境中文本的编辑。Vim编辑器是Vi编辑器的升级版,功能比Vi强大,并且兼容Vi的操作(本文只记录个人学习笔记,如有不对的地方请指正)

Vi编辑器有三个模式,分别是指令模式、插入模式和命令行模式。打开Vim时,首先进入指令模式,此模式下可以进行光标移动、删除、复制等操作;通过"i、I、a、A、o、O"六个指令进入插入模式,“r、R”两个指令进入替换模式,插入和替换模式是进行文本内容的插入修改,按下ESC键退出到指令模式;通过“:,/,?”进入命令行模式,此模式下进行查找替换、保存推出、文件读取等操作,按下ESC键退出到指令模式。插入模式与命令行模式不能互相切换,只能退出到指令模式在进行切换。

一、文件打开、关闭和保存

1、vi filename [...]

在Terminal中输入上面的命令打开文件。Vi后面可以跟多个文件名同时打开多个文件。如果打开filename文件不存在,则创建名为filename的文件。

2、按下“:”进入命令行模式,通过“q,w,!”三个命令进行文件的保存退出。

:q#不保存退出文件

:q!#不保存修改强制退出(!是强制退出的意思,不需要用户确认)

:w#保存

ZZ#快捷键,保存并退出

:w newfilename#另存为newfilename并退出

:n1,n2 w newfilename#将文件的第n1行到n2行的内容另存为名为newfilename的新文件

:wq#保存并退出

拓展:

:wq   强制性写入文件并退出。即使文件没有被修改也强制写入,并更新文件的修改时间。
:x    写入文件并退出。仅当文件被修改时才写入,并更新文件修改时间,否则不会更新文件修改时间。

在编程方面,对编辑源文件可能会产生重要影响,":wq"强制更新文件的修改时间,就得重新编译链接生成可执行文件,会产生不必要的系统资源花销。

3、在命令行模式下可以通过“r,e”两个命令打开新文件。

 :r filename#将filename的内容追加到正在编辑的文件末尾

:e filename#在打开Vim编辑器时未指定文件,则可通过此命令打开filename文件进行编辑

4、定位
   :set nu                        #设置行号
   :set nonu                       #取消行号
    gg                          #光标移到第一行
    G                           #光标移到最后一行
    nG                           #光标移到第n行
    :n                            #光标移到第n行
    $                             #光标移到行尾
    0                             #移到行首

5、删除
      x                         #删除光标所在处字符
      nx                        #删除光标所在处后n个字符
      dd                        #删除光标所在行
      ndd                         #删除n行(从当前光标所在行向后数n行)
      dG                          #删除光标所在行到文件末尾内容
      D                         #删除光标所在处到行尾内容
      :n1,n2d                      #删除指定范围的行

6、复制和剪切
       yy                       #复制当前行
       nyy                        #复制当前行以后n行
       dd                          #剪切当前行
       ndd                       #剪切当前行以下n行
       p、P                      #粘贴在当前光标所在行下或行上

7、替换和取消
       r                        #取代光标所在处字符
       R                           #从光标所在处开始
       u                           #取消上一步操作

8、搜素和搜素替换
       /string                  #搜索指定字符串
        :set ic                 #忽略大小写
        :setnoic                  #不忽略大小写
        n                          #搜索指定字符串的下一个出现位置
         :%s/old/new/g           #全文替换指定字符串
         :n1,n2s/old/new/g        #在一定范围内替换指定字符串

常见用法:
1. 删除以#号开头的行:
   :g/^#/d
   :%s/^#.*\n

2. 删除以空格开头的行:
   :g/^\s/d                “\s代表空格”
   :%s/^\s.*\n

3. 删除以空格#开头的注释行:
   :g/^\ .*#/d             “(.*)代表若干”
   :%s/^\s.*#.*\n//g

4. 删除空白行:
   :g/^$/d
   :g/^\s*$/d               “删除由空格组成的行”
   :g/^[\s|\t]*$/d          “删除由空格或tab键开头到结尾的行”
   :g/^[ |\t]*$/d          “删除由空格或tab键开头到结尾的行”

5. 删除行首空格:
   :%s/^\s\+                “\+代表一个或多个\s”

6. 删除行末空格:
   :%s/\s\+$            

7. 加#注释所有行:
   :%s/^/#/g

8. 查找注释掉的CONFIG:
   /^#.*CONFIG.*$

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值