VimVim 常用编辑操作

Posted Linest-5

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VimVim 常用编辑操作相关的知识,希望对你有一定的参考价值。

目录

正则表达式

vim 命令

vim的工作模式

撤销修改、重做与保存

光标移动命令

文本插入操作

文本删除操作

文本复制、剪切与粘贴

文本的修改与替换

多窗口操作


正则表达式

简单地说,正则表达式是一种符号表示法,用于识别文本模式。在某种程度上,它们类似于匹配文件和路径名时使用的shell通配符,但其用途更广泛。许多命令行工具和大多数编程语言都支持正则表达式,以此来解决文本操作方面的问题。然而,在不同的工具,以及不同的编程语言之间,正则表达式都会略有不同,这让事情进一步麻烦起来。方便起见,我们将正则表达式的讨论限定在POSIX标准中(它涵盖了大多数命令行工具),与许多编程语言(最著名的Perl)不同,这些编程语言使用的符号集要更多一些。

vim 命令

vim编辑器有三种模式:

命令模式、编辑模式、末行模式

模式间切换方法:

(1)命令模式下,输入:后,进入末行模式

(2)末行模式下,按esc慢退、按两次esc快退、或者删除所有命令,可以回到命令模式

(3)命令模式下,按下i、a等键,可以计入编辑模式

(4)编辑模式下,按下esc,可以回到命令模式

vim的工作模式

vim一般有6种工作模式。

  • 普通模式:使用vim打开一个文件时默认模式,也叫命令模式,允许用户通过各种命令浏览代码、滚屏等操作。
  • 插入模式:也可以叫做编辑模式,在普通模式下敲击 i 、a 或 o 就进入插入模式,允许用户通过键盘输入、编辑。
  • 命令行模式:在普通模式下,先输入冒号:,接着输入命令,就可以通过配置命令对vim进行配置了,如改变颜色主题、显示行号等,这些配置命令也可以保存到/etc/vim/vimrc配置文件中,每次打开默认配置执行。
  • 可视化模式:在普通模式下敲击前盘上的 v 键,就进入可视化模式,然后移动光标就可以选中一块文本,常用来完成文本的复制、粘贴、删除等操作。
  • 替换模式:如果我们想修改某个字符,不需要先进入插入模式,删除,然后再输入新的字符,直接在普通模式下,敲击R键就可以直接替换。
  • EX模式:类似于命令行模式,可以一次运行多个命令

vim的各种工作模式可以通过不同的键进行切换,用户统一使用ESC键返回到普通模式。

配置 gvim 界面

在terminal中输入: gvim ~/.vimrc

撤销修改、重做与保存

u:  撤销上一步的操作。
Ctrl+r:  将原来的插销重做一遍
:U  恢复一整行原来的面貌(文件打开时的文本状态)
:q  若文件没有修改,直接退出
:q!  文件已经被修改,放弃修改退出
:wq  文件已经被修改,保存修改并退出
:e!  放弃修改,重新回到文件打开时的状态

光标移动命令

单个字符移动:
h:  向左移动
l:  向右移动
j:  向下移动
k:  向上移动
xh:  向左移动x个字符距离

单词移动:
w:  将光标移动到下一个单词的开头
b:  将光标移动到前一个单词的开头
e:  将光标移动到下一个单词的词末
E:  移动到单词的结尾(忽略标点符号)
ge:  将光标移动到上一个单词的词末
2w:  指定移动的次数

行移动:
$:  将光标移动到当前行的行尾
0:  将光标移动到当前行的行首
^:  将光标移动到当前行的第一个非空字符(行首和当前行非空字符不是一个位置)
2|:  移到当前行的第2列
fx:  将光标移动到当前行的第一个字符x上
3fx: 将光标移动到航前行的第3个字符x上
tx:   将光标移动到目标字符x的前一个字符上
fx和tx可以通过;和,进行重复移动,一个是正向重复,一个是反向重复
%:  用于符号间的移动,它会在一对()、[]、之间跳跃

文本块移动:
(:  移到当前句子的开头
):  移到下一个句子的开头
:  移到当前一段的开头
:  移到下一段的开头
[[:  移到当前这一节的开头
]]:  移到下一节的开头

在屏幕中移动
xG:  跳转到指定的第x行,G移动到文件按末尾,``(2次单引号)返回到跳转前的位置
gg:  移动到文件开头
x%:  移动到文件中间,就使用50%
H:  移动到home
M:  移动到屏幕中间
L:  移动到一屏末尾
ctrl+G:  查看当前的位置状态

文本插入操作

i:  在当前光标的前面插入字符
a:  在当前光标的后面追加字符
o:  在当前光标的下一行行首插入字符
I:  在一行的开头添加文本
A:  在一行的结尾处添加文本
O:  在光标当前行的上一行插入文本
s:  删除当前光标处的字符并进入到插入模式
S:  删除光标所在处的行,并进入到插入模式
u:  撤销修改

文本删除操作

字符删除
x:  删除当前光标所在处的字符
X:  删除当前光标左边的字符

单词删除
dw:  删除一个单词(从光标处到空格)
daw:  无论光标在什么位置,删除光标所在的整个单词(包括空白字符)
diw:  删除整个单词文本,但是保留空格字符不删除
d2w:  删除从当前光标开始处的2个单词
d$:  删除从光标到一行末尾的整个文本
d0:  删除从光标到一行开头的所有单词
dl:  删除当前光标处的字符=x
dh:  删除当前光标左边的字符=X

行删除
dd:  删除当前光标处的一整行=D
5dd:  删除从光标开始处的5行代码
dgg:  删除从光标到文本开头
dG:  删除从光标到文本结尾

行合并
J:  删除一个分行符,将当前行与下一行合并

文本复制、剪切与粘贴

y:  复制,p:粘贴
yw:  复制一个单词
y2w:  复制2个单词
y$:  复制从当前光标到行结尾的所有单词
y0:  复制从当前光标到行首的所有单词
yy:  复制一整行
2yy:  复制从当前光标所在行开始的2行

复制文本块
    1.首先进入visual模式:v
    2.移动光标选择文本
    3.复制与粘贴的操作

文本的修改与替换

cw:  删除从光标处到单词结尾的文本并进入到插入模式
cb:  删除从光标处到单词开头的文本并进入到插入模式
cc:  删除一整行并进入到插入模式
~: 修改光标下字符的大小写
r:  替换当前光标下的字符
R:  进入到替换模式
xp:  交换光标和下一个字符

多窗口操作

分割窗口
    split/vsplit filename
窗口间跳转
    ctrl+w hjkl
    ctrl+w w
移动窗口
    ctrl+w HJKL
调整窗口尺寸
    ctrl+w +/-  调整窗口的高度
    ctrl+w </>  调整窗口的宽度
    ctrl+w = 所有的窗口设置相同的尺寸
    :resize n将当前窗口尺寸调整为N行
关闭窗口
    close: 关闭一个窗口
    qall: 退出所有窗口
    qall!: 放弃修改,退出所有窗口
    wqall: 保存并退出所有窗口
    wall: 保存所有窗口

 vim 的操作复杂,需要常用才能熟练,目前也是初步接触,以此记录便于日后查看。

Linux下vim各模式的操作你了解吗

前言

学习linux少不了和vim打交道,今天我们就来了解一下什么是vim,如何高效使用vim以及如何配置vim。 vi和vim都是linux下多模式的编辑器,两者关系类似于c/c++的关系,vim是vi的升级版,不仅兼容vi的所有指令,还增加了一些新的特性,比如语法高亮,支持正则表达式等,vim具有程序编辑能力,常用于编写代码。下面让我们具体了解vim

Linux下vim各模式的操作你了解吗_java

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的具体配置。

Linux下vim各模式的操作你了解吗_程序员_02

vim模式间的切换

vim打开后默认在Normal命令模式下,也可以称为中间模式,因为模式间的切换都需要回到命令模式下再切换到对应的模式 在任何模式下只需要Esc键即可回到命令模式,如何从命令模式切换到指定模式我们我们接下来介绍

Linux下vim各模式的操作你了解吗_vim_03

命令模式

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

光标操作

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

Linux下vim各模式的操作你了解吗_vim_04

所以用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后就不显示行号了

Linux下vim各模式的操作你了解吗_java_05Linux下vim各模式的操作你了解吗_vim_06

vs [文件名] :在窗口下打开对应文件

Linux下vim各模式的操作你了解吗_程序员_07

这样就把code.c也显示出来了 ctrl+ww :光标在文件间切换,同时光标在哪个文件,操作的就是哪个文件,wq退出的也是对应的文件

Linux下vim各模式的操作你了解吗_程序员_08

help vim-modes查看vim的各种模式 开头的就是命令模式、可视化模式和选择模式的介绍,回车键或是上下左右键翻看文件内容,[冒号+q]即可退出

Linux下vim各模式的操作你了解吗_程序员_09

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

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

可视化模式

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

批量化注释和去注释

在可视化模式下:用hjkl键选择需要注释掉的区域(黄颜色的就是选中的区域)

Linux下vim各模式的操作你了解吗_命令模式_10

然后按shift+i,再输入//此时就注释掉了上图第5行,然后Esc退出,被选中区域就全部注释掉了。 去掉注释:同样在可视化模式下,hjkl选择去注释区域,输入d直接去掉注释 使用hjkl键选择要复制的内容,按y键复制,移动光标,在要粘贴的地方按p粘贴,会直接在光标所在位置处向后粘贴

批量化缩进

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

vim的配置

默认得vim不太好用,需要我们自己配置,普通用户配置vim只能影响当前的普通用户,其他用户不受影响。同时建议以普通用户的身份配置,不要使用root用户配置。 在普通用户下创建一个名为.vimrc的文件,然后打开

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

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

Linux下vim各模式的操作你了解吗_vim_11

这样vim就可以显示信号和语法高亮了

Linux下vim各模式的操作你了解吗_vim_12

这里给大家推荐一个已经配置好的vim插件VimForCpp,现成的轮子不用白不用,将下面方框中的指令复制到linux上执行即可,不过只支持centos7

Linux下vim各模式的操作你了解吗_java_13

输入root密码后就可以下载了

Linux下vim各模式的操作你了解吗_linux_14

下载完成后输入指令vim就配置好了

[test@VM-12-11-centos <sub>]$ source </sub>/.bashrc

Linux下vim各模式的操作你了解吗_linux_15

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

Linux下vim各模式的操作你了解吗_java_16

vim快捷键图片

Linux下vim各模式的操作你了解吗_程序员_17

文章介绍了vim的一部分功能,vim的功能远不止这么多,后期我会慢慢的更新内容。上面的这些常用指令熟练使用后,我们不仅可以脱离鼠标,还会大大提高写代码的效率。

以上是关于VimVim 常用编辑操作的主要内容,如果未能解决你的问题,请参考以下文章

vim 编辑器使用方法

vim常用快捷键

编辑器: vim:插入模式和命令模式 crud

13Vim编辑器使用详解

Linux下vim各模式的操作你了解吗

(转)vim编辑器操作命令大全-绝对全