vim基本使用

本文详细介绍了在Linux环境下编译安装Vim的两种方法,以及如何配置、使用Vim的各种功能,包括光标移动、编辑操作、窗口管理、标签页、折叠效果、文本对象等,涵盖了模式详解、命令重映射和先导键的使用。
摘要由CSDN通过智能技术生成

Linux编译安装vim

自动安装

sudo apt install vim

手动安装

git clone https://github.com/vim/vim.git
cd vim/src
#--with-features=huge 开启大部分功能,不涉及语言绑定
#搜索 install vim <version> with+<feature> on<operating system>
./configure --with-features=huge --enable-python3interp
make
sudo make install

#编译不通过,安装依赖
sudo apt install make build-essential libncurses5-dev libncursesw5-dev --fix-missing 

配置

vim配置

需要安装make, git工具.

git clone https://gitee.com/fedorayang/vim_make_config.git
cd vim_make_config
make all

移动光标

1.方向键

命令说明注释
h根据按键位置
j根据按键位置
k根据按键位置
l根据按键位置

2.行内跳转

命令说明注释
0光标置于行首缩进行首
_光标置于行首字符行首
^光标置于行首字符行首
$光标置于行尾

3.单词跳转

命令说明注释
w/W下一个单词开头,大写广义单词word
b/B上一个单词开头before
e/E下一个单词结尾end
ge上一个单词结尾

4.句子跳转

命令说明注释
(句子开头
)句子结尾

5.段落跳转

命令说明注释
{段落开头
}段落结尾

6.光标移动命令修饰

方式说明注释
数字+命令命令执行的次数5j 光标向下移动5行

7.窗口内跳转

命令说明注释
H当前窗口顶部Header
M当前窗口中间Middle
L当前窗口底部Low

8.翻页

命令说明注释
ctrl +f下一页forward
ctrl+b上一页back

9.文件中跳转

命令说明注释
gg文件开头
G文件结束

10.直接跳转到行号

命令说明注释
:N跳转到指定行N
vim filename +N打开文件时, 跳转到指定行
:+N向下移动N行
:-N向上移动N行

进行编辑

命令说明注释
a进入插入模式, 插入点在光标后面attach
A进入插入模式, 在行尾
i进入插入模式, 插入点在当前光标insert
I进入插入模式,在行首(缩进之后)
o进入插入模式,在光标下面新增一行,在新行内插入open a line below
O进入插入模式,在光标上面新增一行,在新行内插入
gi最后退出的位置进入插入模式非常有用
c修改命令,后面加移动光标命令change
C修改命令,删除直到行尾,然后进入插入模式
cc
S
清除整行,然后进入插入模式,保持当前的缩进水平,这在编程时很有用change change
s(数字+)删除字符,进入插入模式
d删除,后面加移动光标命令delete
dd删除整行delete delete
u撤销最后一次操作undo
ctrl+r重做repeat
ESC退出插入模式
y1.复制后面接移动命令或者文本对象
2.在可视模式下,选择一些文本
yank
yy复制当前行
p粘贴到指定位置
数字+p,多次粘贴
删除和修改命令也进行了复制
paste
ctrl+o执行正常模式下的命令,然后再回到插入模式
.重复之前的修改

基本操作

常用操作

命令说明注释
vim ex_eval.c打开文件
:e ex_cmds.c加载文件Eedit
:w保存内容
也可以跟一个文件名保存到新文件中
write

交换文件

命令说明注释
r从交换文件恢复recover
d删除交换文件delete

命令模式

命令说明注释
:colorscheme+空格+tab切换配色方案在配色方案间切换

杂项

命令说明注释
vim --version列出支持哪些功能,+支持,-未开启
:help feature-list查看所有功能列表
:help 命令单独help
单独h
help +命令
:h 命令 ctrl+d得到多个相关命令
ctrl+]help中打开链接

编辑器用户接口组成

1.缓冲区

缓冲区是文件的内部表示

1.1.查看现有的缓冲区列表

:ls
:buffers
:files

 1 %a   "animal_farm.py"               line 1
#1: 缓冲区编号
#%a: 该缓冲区位于当前窗口中
#"animal_farm.py": 文件名
#line 1: 当前光标位置

1.2.在缓冲区之间跳转

#branch
:b 缓冲区编号 或者 文件名的一部分

#多个相同部分文件名跳转
:b+部分文件名+tab循环切换

#循环遍历
:bn #next
:bp: #previous

1.3.删除缓冲区

#buffer delete
:bd 
:bdelete
#如果没保存会提示错误

1.4.bufdo命令

2.窗口

一个屏幕可以显示几个窗口

2.1.创建窗口

#水平分割窗口
:split animals/cat.py
#简化命令
:sp

#垂直分割窗口
:vsplit animal.py
#简化命令
:vs

2.2.光标在窗口间移动

#使用方向键
ctrl+w 然后hjkl

#配置后
ctrl+hjkl

2.3.关闭窗口

#1.关闭当前窗口
ctrl+w,q

#2.关闭窗口并卸载缓冲区
:q #只要一个窗口退出vim
:bd

#3.关闭所有其他窗口
ctrl+w,o
ctrl+w,on
ctrl+w,only

#关闭所有窗口并退出
:qa
:wqa

2.4.窗口移动

:help window-moving

#
ctrl+w 然后HJKL

2.5.交换窗口内容

#当前行(列)窗口向右(下)移动,行优先级高于列
ctrl+w,r
#相反方向
ctrl+w,R

#当前窗口和下一个窗口交换,光标在当前窗口
#如果是最后一个窗口就和前一个窗口交换
ctrl+w.x

2.6.改变窗口的大小

#将所有的窗口宽高调整为一致
ctrl+w,=

#调整高度
:resize +/-n #增加或减少行数
:res #简写
#调整一行
Ctrl+w,-/+
:resize n #具体高度

#调整宽度
:vertical resize +/-n #增加或减少列数
:vert res #简写
#调整一列
ctrl+w,>/<
:vertical resize n #具体宽度

3.标签页

3.1.新建标签页

#打开一个新标签页
:tabnew
:tabnew filename

3.2.在标签页之间跳转

#下一个
gt
:tabnext

#上一个
gT
:tabprevious

3.3.关闭标签页

:tabclose

3.4.移动标签页

#将标签页移到N位置
:tabmove N

4.折叠效果

#打开一个折叠
zo

#关闭一个折叠
zc

#切换一个折叠
za

#打开所有折叠
zR

#关闭所有折叠
zM

5.文本对象

#使用模式
(修改/删除/可视模式)+内外标志+文本对象

#内对象(以i开头),不包含空白字符
di) #删除括号内内的文本

#外对象(以a开头)
c2aw #修改两个单词,包含空白字符

#文本对象的完整列表
:help text-objects

5.1.常用文本对象

命令说明注释
w/Wword狭义单词,WORD广义单词
ssentense
pparagraph
tHTML/XML的tag

7.快速恢复列表(quickfix)

8.位置列表

9.参数列表

6.2.2

文件树的浏览

1.内置Netrw文件管理器

#在当前窗口中开启文件管理器
:Ex
:Explore
:e .
#左右分割窗口打开
:Vex
#上下分割窗口打开
:Sex
#左右分割窗口打开,Netrw最左边,高度占满屏幕
:Lex

#打开文件和目录
Enter重命名一个文件或目录

#进入上一层目录
-

#删除一个文件或目录
D

#重命名一个文件或目录
R

2.启用了wildmenu的e命令

#状态栏会显示文件列表
:e+space+Tab
#Tab键遍历选择
#Shift+Tab反向遍历
#左右键也可以选择

#Enter键打开选定的文件或目录

#下方向键进入选定的目录
#上方向键进入上一级目录

#支持部分路径
:e+space+<文件名开始的字符>+Tab

模式详解

1.正常模式

normal mode

:按一次键

命令说明注释
ESC
ctrl+c
ctrl+[
其他模式转换到正常模式(有时按2次)

2.插入模式

insert mode

命令说明注释
ctrl+h删除上一个字符在终端中也可使用
ctrl+w删除上一个单词在终端中也可使用
ctrl+u删除当前行在终端中也可使用
ctrl+a光标移动到开始只在终端下使用
ctrl+e光标移动到结尾只在终端下使用
ctrl+b光标向前移动只在终端下使用
ctrl+f光标向后移动只在终端下使用

3.命令行模式

command-line mode

3.2.快捷键

命令行模式下的快捷键

快捷键说明注释
方向键上/下
ctrl+p/ctrl+n
命令历史记录中切换
ctrl+b/ctrl+e命令开头(beginning)和命令结尾(ending)之间切换
ctrl+shift+方向键左/右逐个单词移动光标
ctrl+shift+h/l逐个字符移动光标
ctrl+f打开可编辑的命令行窗口命令行窗口是普通的缓冲区, 可以编辑
:help cmdline-editing查看命令行的使用方法

4.可视模式

visual mode

命令说明注释
v进入字符可视模式状态栏文本 --VISUAL–
V进入可视模式状态栏文本–VISUAL LINE–
ctrl+v进入可视模式状态栏文本–VISUAL BLOCK–
o跳转到高亮选择的另一端

5.替换模式

输入的文本会覆盖已有的文本.

命令说明注释
R进入替换模式状态栏的标识文本为–REPLACE–
r进入单字符替换模式替换单个字符后马上切换回正常模式

6.虚拟替换模式

和替换模式相似,直接在屏幕上显示而不是文件

命令说明注释
gR进入虚拟替换模式
:help vreplace-mode查看虚拟替换模式帮助

7.终端模式

terminal mode是vim自带的,v8.1开始支持.

适应管理窗口,需要和tmux配合使用.

命令说明注释
:[term]inal进入终端模式
:term python3 animal_farm.py cat dog执行单个命令
:term make异步编译
:!python3 animal_farm.py cat dog在vim中执行外部命令不太方便
ctrl+w,N进入正常模式,(插入模式进入终端模式)特殊键盘绑定
ctrl+w,"用于添加一个寄存器,把该寄存器的内容粘贴到终端中.
ctrl+w,ctrl+c将中断快捷键(ctrl+c)发送给终端
#左右窗口使用终端模式
:vertical terminal

8.ex模式

命令行模式变体,现在很少使用.

命令说明注释
Q进入ex模式
visual退出ex模式

9.选择模式

select mode

功能:输入任意可打印字符立即删除选中文本,然后进入插入模式.

现在很少使用.

命令说明注释
gh进入选择模式
ctrl+g可视模式下进入选择模式
ESC退出选择模式

命令的重映射

命令说明注释
map递归映射可以识别自定义映射
noremap非递归映射针对系统默认映射,不管后面的是否映射
:help index查看内置的按键绑定列表
:map查看插件和读者自定义的映射
:map g查看以g开头的映射
:unmap+命令显示移除插件或自定义的映射
:mapclear将自定义和默认映射都清除

重映射的表示方法

符号说明注释
ctrl+u

alt+u
shift+u

回车
空格
ESC键
tab键
,,,方向键
,上下翻页键
~12个功能键
,,,Home,Insert,Delete,End
无操作no operation

模式感知

命令说明注释
:map
:noremap
1.正常模式
2.可视模式
3.选择模式
4.操作待定模式(operator pending mode)
:nmap
:nnoremap
正常模式
:vmap
:vnoremap
1.可视模式
2.选择模式
:xmap
:xnoremap
可视模式
:smap
:snoremap
选择模式
:omap
:onoremap
操作待定模式
:map**!
:noremap
!**
1.插入模式
2.命令行模式
:imap
:inoremap
插入模式
:cmap
:cnoremap
命令行模式
:help !1.强制执行命令
2.为命令添加额外的功能

先导键(leader key)

用户或插件定义的快捷方式的命名空间.先按先导键,然后按下的任何键都来自于该命名空间.

命令说明注释
\默认的先导键
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值