Linux_06_Vim编辑器
Vim编辑文件
打开
Vim打开方式 | 说明 |
---|---|
vim 文件路径 | Vim打开指定路径的文件 (光标位于文件头或上次退出处) |
vim +数字N 文件路径 | Vim打开指定路径的文件 (光标位于第N行) |
vim +/关键词 文件路径 | Vim打开指定路径的文件 (同时以高亮显示关键词,光标同第一种方式) |
vim 文件路径1 文件路径2 | 同时打开多个指定路径的文件 (光标同第一种方式) |
退出
Vim退出必须通过末行模式,且退出分为以下5种:
退出方式 | 含义 |
---|---|
q | 退出 (若已修改文件,则会退出失败) |
q! | 强制退出 (强制退出已修改文件,且不保存) |
wq | 保存并退出 |
x | 保存并退出 |
- wq/q和x退出的区别如下(建议适用x):
文件是否修改 | wq/q退出 | x退出 |
---|---|---|
是 | 更新文件的修改时间 | 更新文件的修改时间 |
否 | 更新文件的修改时间 | 不更新修改时间 |
Vim模式
模式 | 说明 |
---|---|
命令模式 (默认模式) |
通过快捷键游览和修改文件 |
末行模式 (尾行模式) |
通过特定命令操作文件 |
编辑模式 (输入模式) |
通过键盘进行文本式修改文件 |
命令模式
命令模式:通过快捷键游览和修改文件
- 常用快捷有以下3种:
- 移动光标(游览文件):
快捷键 | 说明 |
---|---|
h (←) |
光标向左移动一个字符单位 |
j (↓) |
光标向下移动一个字符单位 |
k (↑) |
光标向上移动一个字符单位 |
l (→) |
光标向右移动一个字符单位 |
shift和6 | 光标移到当前所在行的行首 |
shift和4 | 光标移到当前所在行的行尾 |
gg | 光标移到首行 |
G | 光标移到末行 |
N和G | 光标移到第N行 |
N和j或k | 以当前光标所在行为基准移动N行 |
- 也可通过
Ctrl和B
(向上翻页)和Ctrl和F
(向下翻页)游览文件
- 修改文件:
快捷键 | 说明 |
---|---|
x | 删除当前光标所在的字符 |
dd | 删除光标所在行 |
N和dd | 以当前光标所在行为基准,向下删除N行 |
yy | 复制光标所在行 |
N和yy | 以当前光标所在行为基准,向下复制N行 |
p | 以当前光标所在行为基础,向上黏贴 |
P | 以当前光标所在行为基础,向下黏贴 |
- 可视化删除/复制
Ctrl和V
:通过移动光标选择需操作字符
- 撤销和恢复:
快捷键 | 说明 |
---|---|
U | 撤销快捷键操作 (只能撤销该次打开文件进行的操作) |
Ctrl和R |
恢复撤销 |
. | 重复上次操作 |
末行模式
末行模式:通过特定命令操作文件
- 常用命令有以下5种:
- 退出/保存文件:
退出方式 | 含义 |
---|---|
q | 退出 (若已修改文件,则会退出失败) |
q! | 强制退出 (强制退出已修改文件,且不保存) |
wq | 保存并退出 |
x | 保存并退出 |
- 调用外部命令:在不退出Vim的同时执行命令
- 使用格式:
!命令
- 回车后会切换到终端显示运行结果,可再次回车返回打开的文件
列1:Vim打开/etc/passwd文件的同时输出当前时间
(1)末行模式下输入“!date”
(2)运行结果
- 检索关键词(正则表达式):输入关键词并回车,以高亮显示每个关键词
- 使用格式:
/关键词
- 可通过
N
(上一个)和n
(下一个)查看关键词 - 若关键词包含"/",应使用
\
转移字符表示其为普通字符 - 取消高亮,可输入命令:
nohl
列1:Vim打开/etc/passwd文件的并检索包含关键词“/sbin/nologin”
(1)末行模式下输入“/\/sbin\/nologin”
(2)运行结果
- 替换:匹配指定内容并替换,有以下4种格式:
- 格式1(仅替换光标往后第一处匹配成功内容):
s/匹配内容/替换内容
- 格式2(替换光标所在行所有匹配成功内容):
s/匹配内容/替换内容/g
- 格式3(仅替换文件中每行第一处匹配成功内容):
%s/匹配内容/替换内容
- 格式4(替换文件中所有匹配成功内容):
%s/匹配内容/替换内容/g
- 同时显示多个文件:再打开文件并和已打开的文件同时显示
- 使用格式:
sp 文件路径
- 切换光标所在文件快捷键:
Ctrl和W 和 上下方向键
例1:在两个窗口下同时查看/etc/passwd文件
编辑模式
编辑模式:通过键盘进行文本式修改文件
- 常用进入方式有以下7种:
Vim实用功能
异常退出
异常退出:Vim打开文件后不通过标准命令形式退出文件,当下次打开时会弹出异常退出报错
- Vim打开文件时会默认创建同名的临时交换文件,但后缀为
swap
- 删除该临时文件即可解决异常退出(正常退出时,默认自动删除该临时交换文件)
- 也可在打开临时文件时按“R”保存退出时未保存的内容以解决异常退出(仍需手动删除临时交换文件)
例1:打开异常退出的文件
按键 | 含义 |
---|---|
O (Open Ready Only) |
以只读模式打开该文件 |
E (Edit anyway) |
默认模式打开该文件,但不加载临时交换文件 |
R (Recover) |
正常打开该文件,并加载临时交换文件 |
D (Delete it) |
打开该文件,并在打开前删除临时交换文件 |
Q (Quit) |
退出 |
A (Abort) |
忽略编辑操作,并退出 |
配置Vim
配置Vim:Vim配置文件分为临时配置、个人配置、全局配置
- 临时配置:在末行模式下运行的各种配置命令(关闭即失效)
- 个人配置:各个用户Vim独立的Vim配置文件
~/.virmc
- 全局配置:所有用户的默认Vim配置文件
/etc/vimrc
- 优先级:临时配置 > 个人配置 > 全局配置
- 常用配置命令:
命令 | 含义 |
---|---|
set nu | 显示行号 |
set nonu | 关闭行号 (默认配置) |
syntax on | 语法高亮 |
syntax off | 关闭语法高亮 (默认配置) |
set backup | 自动保存备份文件 |
set nobackup | 取消自动备份文件 (默认配置) |
博主配置文件
"""关闭兼容Vi"""
set nocompatible
"""ESC反应时间为100ms"""
set ttimeout
set ttimeoutlen=100
"""开启新行时,自动缩进"""
set smartindent
"""输入搜索内容时就显示搜索结果"""
set incsearch
"""右下角状态栏"""
set ruler
"""显示当前所在模式"""
set showmode
"""背景色为黑色"""
set background=dark
"""颜色主题为黑色"""
colorscheme slate
"""显示行号"""
set nu
"""语法高亮"""
syntax on
"""F5编译程序"""
map <F5> :call CompileRunGcc()<CR>
func! CompileRunGcc()
exec "w"
if &filetype == 'c'
exec "!g++ % -o %<"
exec "!time ./%<"
elseif &filetype == 'cpp'
exec "!g++ % -o %<"
exec "!time ./%<"
elseif &filetype == 'java'
exec "!javac %"
exec "!time java %<"
elseif &filetype =='python'
exec "!time python3 %"
elseif &filetype == 'go'
exec "!go build %<"
exec "!time go run %"
elseif &filetype == 'sh'
:!time bash %
elseif &filetype == 'html'
exec "!firefox % &"
endif
endfunc