【Linux第三章】vim
【Linux第三章】Vim
Vim简介
1.什么是vim
Vim 是一款功能强大、高度可定制的文本编辑器 ,其名称 “Vim” 是 “Vi IMproved” 的缩写,意为 Vi 编辑器的改进版 。
2.vim的特点
- 多模式操作:具有命令模式、插入模式和底行模式等。命令模式下可执行各种编辑命令;插入模式用于输入文本内容;底行模式可执行保存、退出、查找替换等操作。不同模式分工明确,熟练切换能高效编辑文本。
- 强大的命令组合:Vim 强大的编辑能力很大程度源于普通模式命令,其设计理念是命令组合。例如,“dd” 删除当前行 ,“dj” 可删除当前行和下一行(“d” 是删除 ,“j” 代表移动到下一行) ,还可指定命令重复次数,如 “2dd” 与 “dj” 效果相同。
- 高度可定制化:用户可通过
.vimrc
配置文件进行个性化设置,如自定义快捷键、设置界面显示效果等;也可使用 Vim 内置编程语言 Vim script 编写插件,扩展功能。网上有大量免费的 Vim 插件和扩展可供使用。- 丰富的功能支持:
- 多级撤销树:支持多级树状撤销和重做操作,方便回溯和恢复操作。
- 语法高亮:能对 550 种以上文本文件进行语法高亮显示,便于查看和编辑代码等文本。
- 自动缩进:针对 Shell、Lisp、C/C++、Perl、Java、Ruby、Python 等 40 种以上语言,提供自动缩排功能,使代码排版更规范。
- 搜索与替换:具备强大的搜索和替换功能,可通过简单命令实现复杂的查找和替换操作,如使用 “/string” 向下搜索字符串 “string” ,“:n1,n2s/old/new/g” 从 n1 到 n2 行将 old 替换成 new 。
- 多文件编辑:支持多缓冲编辑、多 tab 编辑 ,可同时打开和编辑多个文件,在不同文件间切换、操作便捷。还能进行远程文件编辑。
- 代码相关支持:代码补全、编译及错误跳转等功能丰富,深受程序员喜爱 ,在编写代码时,可快速定位错误、进行代码补全等操作。
Vim的使用
1.vim下载与基础使用
# 在Ubuntu环境下 sudo apt update # 更新软件包列表 sudo apt install vim # 安装vim vim -v # 出现下面图片则代表安装成功
vim共有三种模式:命令模式、插入模式、底行模式。
- 插入模式:
i
:在光标处插入内容。o
:在光标下一行插入新行。a
:在光标后一位插入。- 模式转换:通过
Esc
键可以从插入模式回到命令模式,在命令模式下输入:
可进入底行模式。命令模式下输入a
、i
、o
等可进入插入模式。- 底行模式常用命令:
w(!)
:保存文件,!
用于强制保存(当文件系统认为是关键文件或未保存时)。q(!)
:退出文件,!
用于强制退出。wq(!)
:保存并退出。set nu/nonu
:显示 / 隐藏行号。!cmd
:在不退出 Vim 的情况下执行外部命令,比如查看、编译、运行等操作。/搜索关键字
:搜索内容,n
可跳转下一个匹配项。2.命令模式操作
- 光标移动: 由于最开始的键盘没有方向键,所以分别使用
hjkl
表示左、下、上、右移动。
w
:以单词为单位,向后移动,支持跨行。b
:以单词为单位,向前移动,支持跨行。gg
:定位到代码的第一行。n+shift+g | (G)
:定位到代码的任意一行 / 最后一行 。shift+6(^)
:特定一行的开始。shift+4($)
:特定一行的结尾。- 文本操作:
n yy
:复制当前行(n
为行数)。n p
:粘贴内容到当前行之后。n dd
:剪切 / 删除当前行(n
为行数)。u
:撤销上一步操作。ctrl + r
:恢复撤销操作。shift + ~
(esc 下面~=
) :文本大小写互相转化 。n + r
:替换光标所在字符,或者多个字符 。n + x
:向后删除一个字符,或者 n 个字符,输入行内操作 。n + shift+x
:向前删除一个字符,或者 n 个字符,输入行内操作 。shift+3(#)
:查找同名单次,n 同单次跳转 。3.vim补充功能
- 批量注释:
ctrl + v
进入可视块模式,选中要注释的区域,shift + i
进入插入模式,输入//
,然后按Esc
键,即可批量添加注释。- 批量删除注释:
ctrl + v
选中注释区域,d
即可删除注释。- 多文件操作:在 Vim 中输入
vs
,可以进行多文件操作,光标在哪个区,就在编辑哪个文件 。例如vim test.c +2
可以在打开test.c
文件后,将光标直接定位到第二行。
4.vim配置
Vim 的配置文件是
.vimrc
,可以在其中进行各种个性化设置,比如设置默认字体、颜色、快捷键等。Vim配置文件分为两种,一种是全局配置文件
/etc/vim/.vimrc
,一种是用户配置文件/home/user/.vimrc
。一种对所有用户生效,一种仅对该用户生效。在对应路径使用vim .vimrc
即可进入vim配置页面。下面是一些常用vim配置:
syntax on " 启用语法高亮 set number " 显示行号 set tabstop=2 " 设置Tab键宽度为2个空格 set autoindent " 启用自动缩进(新行继承前一行的缩进) set mouse=a " 启用鼠标支持(a表示在所有模式下可用) set cursorline " 高亮显示当前行 set cindent " C语言风格的智能缩进 set shiftwidth=4 " 设置自动缩进的宽度为4个空格 set sts=4 " 设置插入模式下Tab键转换的空格数为4 set ruler " 在状态栏显示光标位置(行号和列号) set showmode " 在底部显示当前模式(如INSERT、VISUAL等) set bg=dark " 设置暗色背景主题(影响语法高亮配色) set hlsearch " 高亮显示搜索结果 set laststatus=2 " 始终显示状态栏(显示文件信息和状态)
除此之外,vim也可以进行自动化一键配置,只需要下载他人的配置文件就可以让vim使用起来更加方便。下面贴一个链接,有兴趣可以自己下载。
https://github.com/chxuan/vimplus
5.编译相关知识(gcc/g++)
- 快速查看文件类型:
.cpp
、.cc
、.cxx
等常用于 C++ 文件。不过在 Linux 系统中,文件后缀名在某些情况下意义不大,但也只是系统认为后缀无意义,gcc/g++还是会关心后缀是什么的。- 编译流程:对于 C/C++ 程序,一般流程是源文件 -> 预处理 -> 编译 -> 汇编 -> 链接 -> 可执行程序 。
6.补充知识
- Vim插件:Vim 有丰富的插件生态系统,如 NERDTree(文件树插件)、CtrlP(文件搜索插件)等,可以帮助我们更好的使用vim。
- Vim高级功能:Vim具有宏录制、寄存器使用等一些更高级的功能,这也体现了vim的强大之处。
结尾👍
以上便是Vim的全部内容,如果有疑问或者建议都可以私信笔者交流,大家互相学习,互相进步!🌹
Vim高级功能*:Vim具有宏录制、寄存器使用等一些更高级的功能,这也体现了vim的强大之处。