Linux入门笔记(vim 入门)

所有的 UNIX-like 系统都会内置 vi 文本编辑器,其它的文本编辑器则不一定会存在,很多软件的编辑接口都会主动调用 vi,同时 vi 还具有程序编辑的能力,具有语法高亮的功能。
而 vim 则可以视作为 vi 的高级版本,它具有颜色显示功能,并且还支持许多的程序语法。

输入 alias 命令可以查看到,目前大部分的 Linux 发行版都以 vim 替换 vi 的功能

1 vim 的使用

基本上 vim 共分为三种模式,分别是 一般命令模式编辑模式命令行模式

  • 一般命令模式(command mode)
    使用 vi 编辑器打开文件直接进入的就是 一般命令模式,此时可以执行的操作是:【上下左右】移动光标、【删除字符】、【删除整行】、【复制、黏贴文本】,但是无法进行编辑文件内容的操作

  • 编辑模式(insert mode)
    在一般命令模式中可以按下【iloOaArR】等任意一个字母之后进入编辑模式,此时界面的左下方会出现 insertreplace 的字样。要退回一般命令模式就按下 Esc 按钮即可

  • 命令行模式
    在一般命令模式中可以输入 【:/?】三个的任意一个字符,就可以将光标移动到下面最后一行,此时可以进行一些 查找数据、读取、保存、批量替换字符、退出 vim、显示行号等操作

1.1 按键说明

1.1.1 一般命令模式

下面列举出一些最常用的一些按键,移动光标,移动光标除了使用箭头键还可以使用以下按键,同时如果想要多次移动,如想要向左移动30个字符,可以使使用 30h 组合键。

  • h:向左移动一个字符
  • j:向下移动一个字符
  • k:向上移动一个字符
  • l:向右移动一个字符
  • [Home]:移动到这一行的最前面字符处
  • [end]:移动到这一行的最后面字符处
  • H:移动到这个屏幕的最上方那一行的第一个字符
  • M:移动到这个屏幕的中央那一行的第一个字符
  • L:移动到这个屏幕的最下方那一行的第一个字符
  • G:移动到这个文件的最后一行
  • nGn 为数字,移动到这个文件的第 n

查找与替换:

  • /word:在光标之下寻找一个名称为 word 的字符串位置
  • ?word:在光标之上寻找一个名称为 word 的字符串位置
  • n:在输入查找字符串之后,再点击 n 键继续进行向下寻找该字符串
  • N:与 n 相反,此为向上寻找
  • :n1,n2s/word1/word2/gn1n2 为数字,在第 n1n2 行之间寻找 word1 这个字符串,并将该字符串替换为 word2,可以使用 $ 字符表示该文件的最后一行

删除、剪切

  • xX:在一行中,x 为向后删除一个字符,X 为向前删除一个字符
  • dd:删除(剪切)光标所在的那一整行
  • nddn 为数字,删除(剪切)光标所在的向下 n

复制

  • yy:复制光标所在的那一行
  • nyyn 为数字,复制光标所在的向下 n

黏贴

  • pPp 键将已复制的数据在光标的下一行黏贴,而 P 键则是贴在光标的上一行

恢复操作、重做 前一个操作、重复 前一个操作

  • u:恢复前一个操作,就类似于 [Ctrl] + z
  • [Ctrl] + r:重做前一个操作
  • .:重复前一个操作

1.1.2 命令行模式

  • :w:将编辑的数据写入硬盘文件中,即保存
  • :w!:文件属性为只读时,强行保存,具体能否成功,还是与你对该文件的权限有关
  • :q:退出 vim
  • :q!:不保存,退出 vim
  • ZZ:若文件没有修改则不保存退出,若已经被修改,则保存后退出
  • :w [filename]:将编辑的数据保存为另一个文件
  • :r [filename]:在编辑的数据中,读入另一个名为 filename 文件的数据,将 该文件内容加到光标所在行的后面
  • :! [command]:暂时退出 vim 到命令行模式下执行 command 的显示结果

在 vim 中,【数字】是很有意义的,数字通常代表重复做几次的意思,也有可能是代表去到第几个什么什么的意思。

1.2 vim 的缓存、恢复与打开时的警告信息

在 vim 的一般命令模式下按下 [ctrl] - z 的组合键,可以让 vim 调到后台去执行。

当 vim 的工作被不正常地中断,导致缓存无法借由正常流程来结束,所以缓存就不会消失,而继续保留下来,此时在该目录下会出现一个后缀为 .swp 的缓存文件出现。当存在该缓存文件,再打开源文件的时候就会弹出一些问题信息以及解决方案。
在缓存警告信息的界面中,可以输入以下六个可用按键(首字母)作为解决方案:

  • [O]epn Read-Only:以只读的方式打开该文件
  • (E)dit anyway:还是使用正常地方式打开该文件,并不会加载缓存的内容
  • (R)ecover:加载缓存信息,需要注意的是,加载缓存信息后,该缓存文件并不会自行删除,此时需要手动删除缓存文件
  • (D)elete it:直接删除缓存文件
  • (Q)uit:退出 vim
  • (A)bort:与 Q 类似,退出 vim

2 vim 的额外功能

2.1 可视区块

可视区块的作用感觉有点像 VScode 编辑器中的“鼠标滚轮按键”,可以激活一系列代码区然后进行批量操作,当在一般命令模式下按下 vV[Ctrl] + v 时,这个时候光标移动过的地方就会开始反白,这三个按键的意义分别是:

  • v:字符选择数据
  • V:行选择数据
  • [ctrl] + v:矩形方式选择数据
  • y:将反白的地方复制起来
  • d:将反白的地方删除掉
  • p:将刚复制的内容,在光标所在处黏贴

2.2 多文件编辑

使用 vim 单独地打开多个文件,此时就相当于打开了多个 vim 窗口,这些 vim 窗口都是独立的,这样想要多文件编辑很不方便,想要多文件编辑就需要 使用 vim 命令后面同时接需要打开的文件名从而达到同时打开多文件的效果
多文件编辑按键:

  • :n:编辑下一个文件
  • :N:编辑上一个文件
  • :files:列出目前这个 vim 开启的所有文件

2.3 划分窗口功能

如果想要从另一个文件复制部分内容,却没有像使用上述多文件编辑的方式打开文件,或想要同时查看几个文件,此时就需要使用到划分窗口功能,常用命令如下:

  • :sp [fileName]:打开一个新窗口,如果有加 fileName,表示在新窗口创建一个新文件
  • [ctrl] + w + ↑:移动到上一个窗口
  • [ctrl] + w + ↓:移动到下一个窗口

退出窗口就直接输入 :q 就可以了。

2.4 vim 的关键词补全

vim 的关键词补全,就需要以下补齐组合键:

  • [ctrl] + x => [ctrl] + n:通过目前正在编辑的这个 文件的内容文字 作为关键词,予以补齐
  • [ctrl] + x => [ctrl] + f:以当前目前内容的 文件名 作为关键词,予以补齐
  • [ctrl] + x => [ctrl] + o:以 文件扩展名 作为语法补齐,以 vim 内置的关键词,予以补齐

3 vim 的环境设置

下面列举一些常用的命令:

  • :set all:显示目前所有的环境参数设置值
  • :set nu / :set nonu:是否显示行号
  • :set autoindent / :set noatuoindent:是否自动缩进
  • :syntax on / :syntax off:是否依据程序相关语法显示不同颜色
  • :set bg=dark / :set bg=light:选择高亮的主题
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值