【Linux】之 Vim

目录


一、配置 Vim


1、常用设置

编辑配置文件:**/etc/vimrc **

# 关闭 vi 兼容模式
set nocompatible  

# 自动语法高亮
syntax on 

# 设定配色方案:如果有安装这种配色方案的话
colorscheme monokai 

# 显示行号
set number

# 设置自动缩进
set autoindent 

# 突出显示当前行
set cursorline 

# 打开状态栏标尺
set ruler 

# 设定 tab 长度为 4
set tabstop=4 

# 插入括号时,短暂地跳转到匹配的对应括号
set showmatch 

# 开启新行时使用智能自动缩进
set smartindent 

编辑完成后不需要 source,因为 source 是在当前 shell 环境进行解析和执行指定文件里面的命令,而 vimrc 不是 shell 命令,所以进行了 source 反而会报错;而 vim 命令本身会自动读取该配置文件。

2、配置代码功能

1)设置代码自动补全功能

在 vimrc 配置文件中添加命令

set path+=头文件(include)路径

2)设置源代码查看功能

安装 ctags 命令

$ yum -y install ctags

进入头文件目录并执行添加 ctags 命令

$ cd /usr/include/
$ ctags -R

成功之后会生成相应的 tag 文件:tags

vimrc 配置文件中添加 ctags 路径

set tags+=/usr/include/tags

源码查看方法

把光标定位在需要查看源文件的变量名或函数名中:

  • ctrl + ]:跳转到源代码位置
  • ctrl + o:返回

或者使用末行命令:

:ta 变量或函数名
:ts 变量或函数名

二、Vim 常用命令


所谓的 vim 命令就是在 vim 的末行模式下执行的操作,正常我们使用 vim 打开文件的时候就处于该模式下,如果不知道自己处于哪种模式的话,按 ESC 键可以进入末行模式。

1、插入命令

输入命令 i 进入 insert 状,此时可以像文本编辑器一样编辑文件内容,按 esc 退出。

2、行删除命令

定位到指定行,输入 dd(按两次 d 键)可以删除当前光标所在的行。

3、paste 模式

当我们在 vim 配置文件中设置了自动缩进和智能缩进之后,粘贴文本时会出现变形的问题。而在粘贴文本前进入末行模式输入命令 :set paste 可以进入 paste 模式,此时再插入模式下粘贴内容就不会出现变形的问题了。

4、回退命令

当我们不小心输错了信息时可以输入 u 进行回撤,相当于我们常用的 ctrl + z


三、Vim 多文件编辑


1、同一个窗口同时编辑多个文件

多文件同时编辑命令:

vim  finename1  filename2

该命令同时打开了 filename1 和 filename2 两个文件,不过文件 filename1 的内容会占据整个 vim 窗口,要想在各个文件之间进行切换,我们可通过如下命令:

:n          # 切换到下个一文件
:N          # 切换到上一个文件
:e filename # 不离开vim的情况下编辑其他文件(e为edit)

通过 vim 打开的每个文件都对应着一个 buffer,每个 buffer 都有一个 id(按文件顺序 0、1、2),所以可通过切换 buffer 来达到切换文件的目的:

:ls   # 列出vim打开的所有文件的信息,包括文件名,buffer id等
:b2   # 切换到 buffer id 为2的buffer
:bn   # 切换到当前buffer的下一个buffer
:bp   # 切换当前buffer的前一个buffer
:bd   # 关闭当前buffer,对应文件也随之关闭
:bd2  # 关闭buffer id为2的buffer,对应文件也随之关闭

2、分隔窗口,同时显示多个文件

1) 分隔创建编辑的命令:

# 水平分隔窗口
vim -o filename1 filename2

# 垂直分隔窗口
vim -O filename1 filename2

可以使用 ctrl + ww 在各个窗口之间进行切换

2) 在不关闭 vim 的情况下继续打开其他文件

:e   filename  # 在当前所在窗口之间打开文件
:sp  filename  # 水平分隔窗口打开文件
:vsp filename  # 垂直分隔窗口打开文件

3) vim 和 shell 之间切换

:shell    # 此时vim在后台运行,在shell中输入命令exit,切换回vim

4) 在 vim 中执行 shell 命令(不切换到 shell 中

:!command         # 在执行的命令前加上!,如!ls,!ls -a
:r !command       # 将command命令的执行结果插入到文本当前行的下一行
:3 !command       # 将文本中第三行的内容输入到命令command中进行处理,并将第三行的内容替换为命令的执行结果
:1,3 !command     # 将文本中第一行到第三行的内容输入到命令command中进行处理,并将第一行到第三行的内容替换为命令的执行结果
:3 w !command     # 将文本中第三行的内容输入到命令command中进行处理,不改变当前编辑文件的内容.
:1,3 w !command   # 将文本中第一行到第三行的内容输入到命令command中进行处理,不改变当前编辑文件的内容
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值