6、Linux:一起玩转vi/vim编辑命令

 我们知道 vi 是一个功能强大的文本编辑器,而 vim 则是 vi 的高级版本,vi 可以用不同的颜色显示文本内容,可以对配置文件、shell 脚本、程序代码等进行编辑操作,所有的 Linux 发行版系统上都会默认内置 vi 编辑器。接着,梳理一下 vi/vim 的常见知识点,一起玩转 vi/vim 编辑命令吧。

一、三种工作模式

vi/vim 编辑器有三种工作模式,即命令模式、输入模式、底线命令模式,而这三种工作模式的切换和基本使用,如图:

该图描述了操作 vi/vim 编辑器的基本流程:通过vi 文件名命令进入编辑器的命令模式,然后输入a或i或o中的任意一个键,就可以进入文本的编辑输入模式了,当输入完成后,通过esc键回到命令模式,再通过 : 进入底线命令模式,这意味着可以通过q键退出编辑器,也可以通过wq保存并退出,当然也可以加上!进行强制退出或保存并退出。

二、玩转常见操作

1、光标移动操作

  • 向上方向键 或 K键:上移一格
  • 向下方向键 或 J键:下移一格
  • 向左方向键 或 H键:左移一格
  • 向右方向键 或 L键:右移一格
  • home键 或 数字0:移动到当前行的最前面
  • end键 或 符号$:移动到当前行的最后面
  • gg:移动到文本第一行的第一个字符处
  • G:移动到文本最后一行的第一个字符处
  • n+G:n为数字,移动到文本第n行的第一个字符处
  • n+Enter:n为数字,向下移动n行
  • V,v:V将光标经过的行反白选择,v将光标经过的地方反白选择
  • ctrl+v:将光标选择的块区域反白选择
  • y:将反白的地方复制到剪贴板
  • d:将反白的内容删除

2、文本翻页操作

  • pgup键 或 ctrl+b快捷键键:向上翻页
  • pgdn键 或 ctrl+f快捷键键:向下翻页

3、CRUD操作

  • ?+str:str为搜索字符串内容,? 向上查找
  • /+str:str为搜索字符串内容,/ 向下查找
  • N,n:N查找上一个,n查找下一个
  • :n1,n2s/str1/str2/g : n1, n2为数字, 从第n1行~第n2行之间查找str1字符串, 并将其替换成str2
  • yy :复制光标所在一整行
  • n+yy :n为数字,复制光标所在的向下n行
  • y+0:复制光标所在的那个字符到该行行首的所有数据
  • y+$:复制光标所在的那个字符到该行行尾的所有数据
  • y+G:复制光标所在行到最后一行的所有数据
  • y+1G:复制光标所在行到第一行的所有数据
  • P,p :P向上一行粘贴复制的数据,p向下一行粘贴复制的数据
  • dd :删除光标所在一整行
  • ndd :n为数字,删除光标所在的向下n行
  • d^:删除当前光标之前到行首的所有字符
  • d$:删除当前光标处行尾的所有字符
  • X, x :X向前删除一个字符(相当于delete键),x向后删除一个字符(相当于backspace键)
  • u :向前撤销,撤销上一步操作
  • ctrl+r :向后撤销
  • . :小数点.,重复上一步操作

4、底线命令模式操作

  • :q  退出
  • :q!  强制退出
  • :w  保存当前文件
  • :w a.txt  另存为a.txt文件
  • :w!  强制保存
  • :qw  退出并保存
  • :qw!  强制退出并保存
  • :set nu  设置显示行号
  • :set nonu  取消显示行号
  • :set fileencoding   显示当前文件的编码格式
  • :set fileencoding=gbk   设置当前文件的编码为gbk格式
  • :set fileformat   显示当前文件的断行格式
  • :set fileformat=unix   设置当前文件的断行格式

5、多文件多窗口操作

  • ctrl + w +k :光标切换到上一个窗口
  • ctrl + w +j :光标切换到下一个窗口
  • :sp 文件名 :打开新窗口并显示新文件,若只输入:sp,则两个窗口均显示同一个文件
  • vi 1.txt 2.txt :同时打开两个文件
  • :N :编辑上一个文件
  • :n :编辑下一个文件
  • ctrl + w +q:离开当前窗口【亲测不可用】
  • :files:列出当前用vim打开的所有文件【亲测不可用】

三、问题记录

之前遇到了 Vim 中复制粘贴时出现的格式错乱问题,并没有保存成自己想象中的格式,记录下解决方式,有以下几种方法:

方式1::set paste

vi/vim 进入编辑界面后,在底线命令模式中输入:set paste,进入 paste 模式后,按 i 键进入插入模式,然后再粘帖,文本格式不会错乱了。

方式2:在~/.vimrc文件中加入快捷键设置

map :set paste

map :set nopaste

这样,在普通模式下按 F10 (你也可以用自己喜欢的按键)就会进入 paste 模式,按 i 进入插入模式后粘帖,然后按 回到普通模式,再按 F11 结束 paste 模式。

方式3:同方法2,但会合并快捷键

set pastetoggle=<F11>

这样就可以把上面的 F10 和 F11 合并为一个快捷键来切换 paste 模式了。

其他方式:使用剪切板的方式

我经常用方式1,简单易操作,方式 1~3 基本够用了,设置剪切板的方式,这里不再去深入研究了。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值