Vim
Vim 基础命令
Vim 是一个非常强大的文本编辑器,它分为三种模式:Normal 模式、Insert 模式和 Visual 模式。
在不同的模式下,Vim 的操作方式也不同。
Normal 模式
光标移动
$
: 光标跳转到行尾0
: 光标跳转到第一个字符^
: 光标跳转到第一个非空字符w
: 跳转到下一个单词的开头b
: 跳转到上一个单词的开头gg
: 跳转到文件开头GG
: 跳转到文件结尾:n
: 跳转到第 n 行也可以使用
nG
跳转到第 n 行h
j
k
l
: 左下上右(相当于方向键)
内容编辑
y
: 复制yy
: 复制当前行x
: 剪切当前字符(也可以用于删除当前字符)X
: 剪切前一个字符p
: 粘贴P
: 粘贴到当前行的前面d
: 删除dd
: 剪切当前行ddp
: 将当前行和下一行交换(其实就是删除当前行,然后粘贴到下一行)u
: 撤销i
: 在当前字符前插入新字符a
: 在当前字符后插入新字符I
: 在当前行首插入新字符o
: 在当前行下面插入新行r
: 替换当前字符R
: 替换当前字符及后续字符c+命令
: 删除当前字符并进入 Insert 模式c
代表 change,后面可以跟任意移动光标的命令,例如cw
、c$
、c0
等,这样就可以实现快速删除并插入新字符的操作cw
代表删除当前单词的后面字符并进入 Insert 模式caw
代表删除当前单词并进入 Insert 模式(包括单词周围的空格)ciw
代表删除当前单词并进入 Insert 模式(仅删除单词):%d
: 删除所有行
查找及替换
/
: 搜索n/N
: 下一个/上一个搜索结果:s/old/new/g
: 替换当前行中的所有 old 为 new:{作用范围}s/{目标}/{替换}/{替换标志}
作用范围包括:
.
当前行1,5
1 到 5 行%
所有行
替换标志包括:
g
全局替换c
替换前询问(y/n/a/q/l 分别表示:yes/no/all/quit/last)
翻页
Ctrl + f
: 向下翻页(相当于 PageDown)Ctrl + b
: 向上翻页(相当于 PageUp)
其他命令
:q
: 退出:q!
: 强制退出:w
: 保存:wq
: 保存并退出
Insert 模式
Insert 模式是用于输入文本的模式,可以通过 Normal 模式下的 i
、a
、o
等命令进入 Insert 模式。
Visual 模式(可视模式)
Visual 模式是用于选中文本的模式,选中文本后可以对选中的文本进行操作。
v
: 进入 Visual 模式Visual 模式下,可以选中一段文本,然后对这段文本进行操作
V
: 进入 Visual Line 模式Visual Line 模式下,可以选中一行文本,然后对这行文本进行操作
Ctrl + v
: Visual Block 模式Visual Block 模式下,可以选中一个矩形区域,然后对这个区域进行操作
Vim 配置文件
Vim 的配置文件是 ~/.vimrc
,可以在这个文件中设置一些 Vim 的配置选项,来永久保存你的配置。
我的 Vim 配置文件可以参考 这里。
常用配置选项
set number
: 显示行号(set number 可以简写为 set nu)set nonumber
: 隐藏行号(set nonumber 可以简写为 set nonu)set expandtab
: 将 tab 转换为空格set tabstop=4
: 设置 tab 键的宽度为 4 个空格(默认为 8 个空格)set noexpandtab
: 将空格转换为 tab(默认为 tab)set autoindent
: 自动缩进set shiftwidth=4
: 设置自动缩进的宽度为 4 个空格set noautoindent
: 取消自动缩进set ignorecase
: 搜索时忽略大小写set noignorecase
: 搜索时区分大小写set hlsearch
: 高亮搜索结果set nohlsearch
: 取消高亮搜索结果set incsearch
: 实时搜索set noincsearch
: 取消实时搜索set list
: 显示不可见字符set nolist
: 隐藏不可见字符set wrap
: 自动换行set nowrap
: 取消自动换行set mouse=a
: 启用鼠标set mouse=
: 禁用鼠标set ffs=unix,dos,mac
: 识别不同操作系统的文件格式处理跨平台文件格式的兼容性
set encoding=utf8
: 设置文件编码为 UTF-8set colorcolumn=80
: 设置列宽为 80(会在第 80 列显示一条竖线)
开启语法高亮
在 Vim 中开启语法高亮,可以让代码更加清晰易读。
syntax on
Vim 的语法高亮依赖语言的语法文件。Vim 默认支持大部分编程语言的语法高亮,但是有些语言可能需要手动安装语法文件。
语法文件通常存放在 ~/.vim/syntax/
目录下,或者是 /usrr/share/vim/vim*/syntax/
目录下。
可以通过添加 set t_Co=256
来确保开启 256 色彩。
注意: 如果你的终端不支持 256 色彩,可以使用 set t_Co=16
来开启 16 色彩。
不起作用的解决方法:
如果你的 Vim 配置文件中设置了
set background=dark
,但是语法高亮没有生效,可以尝试将set background=dark
放在syntax on
之前。确保你的终端支持 256 色彩,可以通过
echo $TERM
查看终端类型,如果是xterm-256color
,则支持 256 色彩。确保文件类型检测开启,可以通过
filetype on
和filetype plugin on
来开启文件类型检测。
设置状态栏
状态栏默认是关闭的,我可以通过设置 set laststatus=2
来开启状态栏。
可选值:
0:从不显示状态栏。
1:仅在有多个窗口时显示状态栏。
2:始终显示状态栏(推荐)。
3:显示全局状态栏(适用于 Vim 8+ 和 Neovim)。
我们可以自定义状态栏的显示内容与格式,默认的为:
set statusline=%<%f\ %h%m%r%=%-14.(%l,%c%V%)
\
: 分隔不同部分,避免哪哦那个粘连%<
: 从左到右显示%f
: 文件名%h
: 如果文件有帮助标志,显示一个H
%m
: 如果文件已被修改但未保存,显示一个+
%r
: 如果文件是只读的,显示一个RO
%=
: 从右到左显示%-14.
: 从右到左显示,最多 14 个字符(%l,%c%V%)
: 当前行号,当前列号,当前列百分比
还有更多可选参数,如:
%{expr}
: 用于执行 VimL 表达式,如使用%{getcwd()}
来显示当前工作目录%{&filetype}
: 显示当前文件类型%F
: 显示完整文件路径%w
: 如果窗口有警告标志,显示一个W
开启粘贴模式
在 Vim 中,有时候我们需要粘贴一段代码,但是由于自动缩进的原因,粘贴的代码可能会出现格式错误。
这时候可以通过 set paste
来开启粘贴模式,粘贴完代码后再通过 set nopaste
来关闭粘贴模式。
Vim 高级命令
多文件操作
:e filename
: 打开一个文件:ls
: 列出当前打开的文件:bnext
: 切换到下一个文件:bprev
: 切换到上一个文件:bfirst
: 切换到第一个文件:blast
: 切换到最后一个文件:bdelete
: 关闭当前文件
nano 编辑器(类似于 Vim)
nano 是一个简单易用的文本编辑器,适合初学者使用。
在这里简单介绍一下 nano 的基本使用方法。
基本操作
Ctrl + G
: 显示帮助Ctrl + O
: 保存(这是Write Out
命令)系统会提示保存文件名,按下回车键即可保存
Ctrl + X
: 退出Ctrl + W
: 搜索Ctrl + K
: 剪切