经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 软件/图像 » Vim » 查看文章
Linux学习笔记:vim
来源:cnblogs  作者:garvenc  时间:2019/7/23 10:07:50  对本文有异议

本文更新于2019-07-23。

说明:下文中,使用{}引起表示自定义变量,根据实际情况填写。使用[]引起表示内容可选,使用<>引起表示按键内容。(+)表示按键组合

模式

vim包括命令模式、编辑模式、底行模式。

编辑模式 <--------------------- 命令模式 ---------------------> 底行模式
         --------------------->         <---------------------

命令模式

进入vim时使用的是命令模式。

按键 说明
0 光标移动至该行第一个字符
$ 光标移动至该行最后一个字符
<Home> 光标移动至该行第一个字符
<End> 光标移动至该行最后一个字符
{n}← 光标向左移动n个字符,默认为一个字符
{n}↓ 光标向下移动n行,默认为一行
{n}↑ 光标向上移动n行,默认为一行
{n}→ 光标向右移动n个字符,默认为一个字符
{n}h 光标向左移动n个字符,默认为一个字符
{n}j 光标向下移动n行,默认为一行
{n}k 光标向上移动n行,默认为一行
{n}l 光标向右移动n个字符,默认为一个字符
{n}<Space> 光标向右移动n个字符,默认为一个字符
{n}<Enter> 光标向下移动n行,至其第一个字符
- 光标移动到非空格的上一行
+ 光标移动到非空格的下一行
<Page Up> 光标向上移动一页
<Page Down> 光标向下移动一页
<Ctrl>(+)b 光标向上移动一页
<Ctrl>(+)f 光标向下移动一页
<Ctrl>(+)u 光标向上移动半页
<Ctrl>(+)d 光标向下移动半页
H 光标移动至此屏幕第一行的第一个字符
M 光标移动至此屏幕中间行的第一个字符
L 光标移动至此屏幕最后一行的第一个字符
gg 光标移动至文件第一行的第一个字符
{n}G 光标移动至文件的第n行的第一个字符,默认为最后一行
<Ctrl>(+)wj 光标移动至下面的窗口
<Ctrl>(+)w↓ 光标移动至下面的窗口
<Ctrl>(+)wk 光标移动至上面的窗口
<Ctrl>(+)w↑ 光标移动至上面的窗口
<Ctrl>(+)wq 退出当前窗口
v 多字符选择,反白选择光标经过的连续字符
V 多行选择,反白选择光标经过的连续行
<Ctrl>(+)v 块选择,反白选择光标移动开始和移动结束位置间的矩形文本块
{n}X 删除光标前n个字符,默认为一个字符
{n}x 删除光标所在字符起后n个字符,默认为一个字符
d0 删除光标前一个字符至该行第一个字符
d$ 删除光标所在字符至该行最后一个字符
{n}dd 删除光标所在行开始的n行,默认为一行
d1G 删除光标所在行至第一行
dG 删除光标所在行至最后一行
d 删除反白选择的字符
y0 复制光标前一个字符至该行第一个字符
y$ 复制光标所在字符至该行最后一个字符
{n}yy 复制光标所在行开始的n行,默认为一行
y1G 复制光标所在行至第一行
yG 复制光标所在行至最后一行
y 复制反白选择的字符
P 粘贴,如粘贴行则粘贴在当前行上一行
p 粘贴,如粘贴行则粘贴在当前行下一行,可黏贴矩形文本块
J 将光标所在行与下一行合并至同一行
{n}c{direction} 进入插入模式,并向指定方向删除n个字符或n行,direction可为←、↓、↑、→、h、j、k、l
i 进入插入模式,从光标所在字符处开始插入
I 进入插入模式,从光标所在行第一个非空白符处开始插入
a 进入插入模式,从光标所在字符的下一字符处开始插入
A 进入插入模式,从光标所在行最后一个字符后开始插入
o 进入插入模式,在光标所在行下一行插入新行
O 进入插入模式,在光标所在行上一行插入新行
r 使用下一个输入的字符替换光标所在字符,只替换一次
R 进入替换模式,一直替换光标所在字符直至输入<Esc>,期间可移动光标
u 撤销上一个操作
<Ctrl>(+)r 重做上一个撤销的操作
. 重复上一个操作
n 重复底行模式输入的前一个查找操作
N 反方向重复底行模式输入的前一个查找操作
ZZ 如文件有改动,则保存文件后退出vim;如文件没有改动,则直接退出vim

编辑模式

编辑模式包括:插入模式,界面左下方有“-- INSERT --”提示;替换模式,界面左下方有“-- REPLACE --”提示。

按键 说明
<Esc> 退出编辑模式,回到命令模式

底行模式

底行模式需使用<Enter>结束输入。

按键 说明
/{word} 向下查找word
?{word} 向上查找word
:n 编辑下一个文件
:N 编辑上一个文件
:files 列出打开的所有文件
:sp [{filename}] 打开新窗口。如不指定filename则使用当前窗口相同的文件
:set {setting} 修改vim设置
:{n},{m}s/{src}/{dst}/g[c] 将n(含)至m(含)行的src替换为dst,m使用$表示最后一行。可使用c指定替换前需要提示确认
:r {filename} 读取指定文件内容并插入至光标所在行的下一行
:[{n},{m}] w {filename} 将文件内容保存至指定文件,可指定n(含)至(m)行
:w[!] 保存文件。可使用!强制保存文件,但实际能否保存仍与文件权限有关
:q[!] 退出vim或退出当前窗口。可使用!强制退出,不保存文件
:wq[!] 保存文件后退出vim。可使用!强制保存后退出,但实际能否保存仍与文件权限有关
:[ ]{command} 暂时离开vim,执行Linux命令
<Esc> 退出底行模式,回到命令模式

.vimrc

vim设置。每行一个设置值,可以:开始,可使用"注释该行后面的内容。

设置 说明
set 显示所有与默认值不同的设置
set all 显示当前所有设置
set autoindent 自动缩进
set backspace=N 设置编辑模式下退格键的动作。2可以删除任何字符,0和1只能删除刚刚输入的字符,无法删除已存在的字符
set backup 自动备份文件。即当文件有任何改动时,原文件会在文件所在目录下备份为FILENAME~
set bg=dark light
set hlsearch 高亮查找结果
set noautoindent 取消自动缩进
set nohlsearch 取消高亮查找结果
set nonu 取消显示行号
set nu 显示行号
set ruler 显示右下角的提示
set showmode 显示左下角的提示
syntax on off

.viminfo

记录vim的历史操作。

.swap

使用vim打开文件后,会在文件所在目录下生成.FILENAME.swap文件。

原文链接:http://www.cnblogs.com/garvenc/p/linux_learning_vim.html

 友情链接: NPS