【Linux编辑神器:vim】

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

目录

 1. vim的基本概念

 2. vim的基本操作

 3. vim正常模式命令集

4. vim底行模式命令集

5. 简单vim配置

6 总结


什么是Vi/Vim?

vi/vim 的区别简单点来说它们都是多模式编辑器不同的是 vim vi 的升级版本它不仅兼容 vi 的所有指令而且还有一些新的特性在里面。例如语法加亮可视化操作不仅可以在终端运行也可以运行于 x window mac os windows

 Vi/Vim键盘图


 1. vim的基本概念

博客中我们主要讲解 vim 的三种模式 ( 其实有好多模式目前掌握这 3 种即可 ), 分别是命令模式 command mode 、插 入模式 Insert mode 和底行模式last line mode

各模式的功能区分如下

  • 正常/普通/命令模式(Normal mode)
控制屏幕光标的移动字符、字或行的删除移动复制某区段及进入 Insert mode 下或者到 last line mode
  •  插入模式(Insert mode)
只有在 Insert mode 下才可以做文字输入按 「ESC」 键可回到命令行模式。该模式是我们后面用的最频繁 的编辑模式。
  •  底行模式(last line mode)
文件保存或退出也可以进行文件替换找字符串列出行号等操作。 在命令模式下 shift+;( :) 即可进入该模式。要查看你的所有模式打开 vim 底行模式直接输入退出查看所有模式可以在底行模式下输入 :exit )
:help vim-modes

 注意

1 我这里是使用了配置过的vim所以用起来比较方便舒适文章后面我会给出具体的配置方法这里有需要的老铁可以直接跳转到文章末尾。

2 当我们打开vim时默认是在命令模式下,命令模式是插入模式和底行模式的中转站插入模式与底行模式的转换都必须先转换为命令模式。

3 这些命令必须使用英文字符。


 2. vim的基本操作

  • 进入vim,在系统提示符号输入vim及文件名称后就进入vim全屏幕编辑画面:

我这里配置后是这个样子

不过有一点要特别注意就是你进入 vim 之后是处于 [ 正常模式 ] 你要切换到 [ 插入模式 ] 才能够输入文字.
  • [正常模式]切换至[插入模式]
  • 输入a 跳转到光标的下一个位置
  • 输入i 跳转到光标当前位置
  • 输入o跳转到下一行
  •  [插入模式]切换至[正常模式]

目前处于[插入模式]就只能一直输入文字如果发现输错了字,想用光标键往回移动将该字删除可以先按一下「ESC」键转到[正常模式]再删除文字。当然也可以直接删除。这里再补充一下最开始的电脑是没有配备上下左右键的而是用h(左j(下)k(上,l(右来代替的后续有关其他vim相关操作有些会搭配着这些键使用

  • [正常模式]切换至[末行模式]
shift + ; , 其实就是输入「:
  • 退出vim及保存文件,[正常模式]下按一下「:」冒号键进入「Last line mode

例如:

: w 保存当前文件
: wq ( 输入「 wq , 存盘并退出 vim)
: q! ( 输入 q!, 不存盘强制退出 vim)

 3. vim正常模式命令集

注意以下命令都是在命令模式下执行的。

  • 插入模式
  • 按「i」切换进入插入模式「insert mode」按“i”进入插入模式后是从光标当前位置开始输入文件
  • 按「a」进入插入模式后是从目前光标所在位置的下一个位置开始输入文字
  • 按「o」进入插入模式后是插入新的一行从行首开始输入文字
  •  从插入模式切换为命令模式
  • 按「ESC」键。
  •  移动光标
  • vim可以直接用键盘上的光标来上下左右移动但正规的vim是用小写英文字母「h」「j」「k」、l」分别控制光标左、下、上、右移一格
  • 按[ gg]进入到文本开始;可以与n结合使用n+gg跳转到第n行
  • 按「shift+g (G)」移动到文章的最后;可以与n结合使用n+G跳转到第n行
  • 按「shift+4 ($) 」移动到光标所在行的行尾”;
  • 按「shift+6 (^)」移动到光标所在行的行首“;
  • 按「w」光标跳到下个字的开头;
  • 按「e 」光标跳到下个字的字尾;
  • 按「b 」光标跳到上个字的开头
  • 按「 nl 」光标移到该行的第n 个位置;
  • 按「 ctrl + b 」屏幕往 移动一页;
    按「 ctrl + f 」屏幕往 移动一页;
    按「 ctrl +u 」屏幕往 移动半页;
    按「 ctrl + d 」屏幕往 移动半页.
  •  删除文字
  • 按「x」每按一次删除光标所在位置的一个字符;(可以与n搭配「nx」表示删除光标所在位置的后面包含自己在内n个字符 )
  • 按「X」大写的X每按一次删除光标所在位置的前面”一个字符(可以与n搭配「nX」表示删除光标所在位置的前面不包含自己在内n个字符)
  • 按「dd」删除光标所在行可以与n搭配从光标所在行开始删除n行)
  •  复制
  • 按「yw」将光标所在之处到字尾的字符复制到缓冲区中(可以与n搭配「nyw」表示复制n个字符到缓冲区中
  • 按「yy」复制光标所在行到缓冲区可以与n搭配「nyy」表示拷贝从光标所在的该行往下数”n行文字。
  • 按「p」将缓冲区内的字符贴到光标所在位置注意所有与“y”有关的复制命令都必须与“p”配合才能完成复制与粘贴功能。
  • 按「dd+p」:等同于剪切功能。
  •  替换
  • 按「r」替换光标所在处的字符支持nr)
  • 按「R」替换光标所到之处的字符直到按下「ESC」键为止
  •  撤销上一次操作
  • 按「u」如果您误执行一个命令可以马上按下「u」回到上一个操作。按多次“u”可以执行多次回
  • ctrl + r: 撤销的恢复 。
  •  更改
  • 按「cw」更改光标所在处的字到字尾处
  • 按「cnw」例如「cnw」表示更改3n个字
  •  跳至指定的行
  • 按「ctrl+g」列出光标所在行的行号
  • 按「nG」例如「15G」表示移动光标至文章的第15行行首.
  •  大小写切换

按「shift+~」大小写转换一直按住shift可以一直转换


4. vim底行模式命令集

注意以下命令均是在底行模式下进行。

在使用底行模式之前请记住先按「ESC」键确定您已经处于正常模式再按「」冒号即可进入底行模式。

  • 列出行号
  • set nu: 输入「set nu」后会在文件中的每一行前面列出行号。
  •  跳到文件中的某一行
  • 「n:n」号表示一个数字在冒号后输入一个数字再按回车键就会跳到该行了如输入数字15再回车就会跳到文章的第15行.
  •  查找字符
  • 「/关键字」: 先按「/」键再输入您想寻找的字符如果第一次找的关键字不是您想要的可以一直按 n」会往后寻找到您要的关键字为止。
  • ?关键字」先按「?」键再输入您想寻找的字符如果第一次找的关键字不是您想要的可以一直按「n」会往前寻找到您要的关键字为止。「?关键字」与「/关键字」的区别是「/关键字」会让光标定位到首行而「?关键字」则不是。
  •  保存文件
  • w: 在冒号输入字母「w」就可以将文件保存起来
  • 离开vim
  • 「q」按「q」就是退出如果无法离开vim可以在「q」后跟一个「!」强制离vim
  • wq」一般建议离开时搭配「w」一起使用这样在退出的时候还可以保存文件。
  • 多文件操作

「vs+文件名」按「ctrl+w+w」在文件中互相切换打开后就像这样

 另外如果输入一个新的文件名时与使用vim打开文件一样没有就会重新建立一个就像这样

 退出的话光标定位到哪里就用对应的命令退出该文件即可。


 5. 简单vim配置

配置文件的位置

  • 在目录 /etc/ 下面有个名为vimrc的文件这是系统中公共的vim配置文件对所有用户都有效。
  • 而在每个用户的主目录下都可以自己建立私有的配置文件命名为“.vimrc”。例如/root目录下通常已经存在一个.vimrc文件,如果不存在则创建之。
  • 切换用户成为自己执行 su 进入自己的主工作目录,执行 cd ~打开自己目录下的.vimrc文件执行 vim .vimrc。

 常用配置选项,用来测试

  • 设置语法高亮: syntax on
  • 显示行号: set nu
  • 设置缩进的空格数为4: set shiftwidth=4

 使用插件

要配置好看的 vim 原生的配置可能功能不全可以选择安装插件来完善配置保证用户是你要配置的用户。这里大家可以自行在网上查询资料。

 这里我们如果要配置的话不用那么麻烦已经有了大佬给我们配置好了的非常感谢汤神老师大家可以在自己的用户上输入下面这段指令系统就会自动给我们当前用户配置具体命令为

curl -sLf https://gitee.com/HGtz2222/VimForCpp/raw/master/install.sh -o ./install.sh && bash ./install.sh

6 总结

今天我们重点介绍了Linux下编辑神器vim的使用总的来说vim的使用成本还是蛮高的但是这个确是我们不得不掌握的一项基本技能只要多花些时间去练习我相信这对我们来说应该不是太大的问题。如果今天的文章对你有收获的话能不能3连支持一下博主呢

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: linux