乐趣区

关于java:Linux下vim各模式的操作你了解吗

前言

学习 linux 少不了和 vim 打交道,明天咱们就来理解一下什么是 vim,如何高效应用 vim 以及如何配置 vim。

vi 和 vim 都是 linux 下多模式的编辑器,两者关系相似于 c /c++ 的关系,vim 是 vi 的升级版,不仅兼容 vi 的所有指令,还减少了一些新的个性,比方语法高亮,反对正则表达式等,vim 具备程序编辑能力,罕用于编写代码。上面让咱们具体理解 vim

vim 的模式

vim 有多种模式,这里介绍一些罕用的模式给大家,别离是命令模式(也叫一般模式 Normal mode)、插入模式(Insert mode)、底行模式(last line mode)、可视化模式(Visual mode)、替换模式(Replace mode)。

用得最多的就是命令模式、插入模式和底行模式。文章前面也会教大家在 vim 上查看其余模式,linux 下个别默认是装置了 vim,没有下载 vim 执行上面指令即可

[king@VM-12-11-centos code]$ sudo yum intsall -y vim

vim 后间接跟文件就会关上对应的文件,如果文件不存在就会主动创立

[king@VM-12-11-centos code]$ vim tmp.c

关上后就是这个界面,这里我的 vim 是配置过的,和原生的 vim 不同,文章前面会介绍 vim 的具体配置。

vim 模式间的切换

vim 关上后默认在 Normal 命令模式下,也能够称为两头模式,因为模式间的切换都须要回到命令模式下再切换到对应的模式 在任何模式下只须要 Esc 键即可回到命令模式,如何从命令模式切换到指定模式咱们咱们接下来介绍

命令模式

管制屏幕光标的挪动,字符、字或行的删除,挪动复制某区段等

光标操作

晚期的键盘是没有上下左右键的

所以用 h(左)、j(下)、k(上)、l(右)

  • shift+^:光标定位到以后行的行首,shift+$ 光标定位到以后行行尾
  • gg:定位到起始行
  • shift+g:定位到完结行
  • n+shift+g:n 示意指定的行数,跳转到指定行
  • b/w:以单词为单位光标前 / 后挪动
  • l:光标在该行向后挪动 #个间距

  • ctrl + b:屏幕往“后”挪动一页
  • ctrl +f:屏幕往“前”挪动一页
  • ctrl +u:屏幕往“后”挪动半页
  • ctrl+d:屏幕往“前”挪动半页

文本操作

  • yy:复制以后行
  • nyy:以以后行开始,复制 n 行
  • p:粘贴
  • np:一次反复粘贴 n 行
  • u:撤销
  • ctrl+r:复原方才的撤销,也就是撤销方才的撤销
  • dd:删除光标所在行(ps:这里删除还能够当做剪切应用,比方 dd 删除以后行后,按 p 能够粘贴到指定地位)
  • ndd:删除 n 行
  • shift+~:单词大小写切换
  • x:删除光标所笼罩的字符
  • xn:删除光标后的 n 个字符
  • shift+x:删除光标前的一个字符
  • n+shift+x:删除光标前 n 个字符
  • r+ 字符:用指定字符替换光标所在字符
  • n+r+ 字符:用指定字符替换光标后的 n 个字符

替换模式

  • shift+r:从命令模式切换为替换模式,在键盘上一直输出就会一直替换以后光标所在字符

插入模式

插入模式就是用来编辑文件内容的模式

从命令模式下进入插入模式:

  • i/I:在光标后面 / 行首插入
  • a/A:在光标前面 / 行尾插入
  • o/O:在光标下 / 上行行首插入

还有一些其余的形式这里就不介绍了,咱们个别用 i 从命令模式进入插入模式而后编辑代码

底行模式

  • :(Shift+ 冒号):从命令模式进入底行模式
  • w : 保留
  • q:退出
  • !:强制执行
  • wq!:强制保留并退出
  • set nu:显示行号
  • set nonu:去掉行号

这里原本是有信号的,咱们 set nonu 后就不显示行号了

vs [文件名]:在窗口下关上对应文件

这样就把 code.c 也显示进去了

ctrl+ww:光标在文件间切换,同时光标在哪个文件,操作的就是哪个文件,wq 退出的也是对应的文件

help vim-modes 查看 vim 的各种模式

结尾的就是命令模式、可视化模式和抉择模式的介绍,回车键或是上下左右键翻看文件内容,[冒号 +q] 即可退出

  • 「/ 关键字」: 先按「/」键,再输出想寻找的字符,如果第一次找的关键字不是你想要的,能够始终按「n」,直到往后寻找到你要的关键字为止。
  • 「? 关键字」:先按「?」键,再输出你想寻找的字符,如果第一次找的关键字不是您想要的,能够始终按「n」,会往前寻找到您要的关键字为止。

两者的区别是:[/ 关键字] 是从文件底部开始找,而「? 关键字」是从文件顶部开始的

可视化模式

v 或 shift+ v 或 ctrl+v:都可从命令模式进入可视化模式

批量化正文和去正文

在可视化模式下:用 hjkl 键抉择须要正文掉的区域(黄色彩的就是选中的区域)

而后按 shift+i,再输出 // 此时就正文掉了上图第 5 行,而后 Esc 退出,被选中区域就全副正文掉了。

去掉正文:同样在可视化模式下,hjkl 抉择去正文区域,输出 d 间接去掉正文

应用 hjkl 键抉择要复制的内容,按 y 键复制,挪动光标,在要粘贴的中央按 p 粘贴,会间接在光标所在位置处向后粘贴

批量化缩进

同样在可视化模式下通过 hjkl 选中要缩进的区域,而后按 shift+ i 而后 Tab 键缩进单行,而后 Esc 退出,这样被选中区域就都缩进了

vim 的配置

默认得 vim 不太好用,须要咱们本人配置,普通用户配置 vim 只能影响以后的普通用户,其余用户不受影响。同时倡议以普通用户的身份配置,不要应用 root 用户配置。

在普通用户下创立一个名为.vimrc 的文件,而后关上

[test@VM-12-11-centos ~]$ touch .vimrc
[test@VM-12-11-centos ~]$ vim .vimrc
  • 设置语法高亮:syntax on
  • 显示信号:set nu

还有一些其余的我就不介绍了,[ESc] 进入命令模式,[:wq] 保留退出

这样 vim 就能够显示信号和语法高亮了

这里给大家举荐一个曾经配置好的 vim 插件 VimForCpp,现成的轮子不必白不必,将上面方框中的指令复制到 linux 上执行即可,不过只反对 centos7

输出 root 明码后就能够下载了

下载实现后输出指令 vim 就配置好了

[test@VM-12-11-centos ~]$ source ~/.bashrc

配置好后,vim 界面就是这样了

vim 快捷键图片

文章介绍了 vim 的一部分性能,vim 的性能远不止这么多,前期我会缓缓的更新内容。下面的这些罕用指令纯熟应用后,咱们不仅能够脱离鼠标,还会大大提高写代码的效率。

退出移动版