Vim常用指令
一、普通模式
1. 快速移动
数字+h/j/k/l 实现向左/下/上/右移动"数字"次 |
gi 快速回到最后一次编辑的位置,并切换到插入模式移动 |
w/e移到下一个word/WORD开头;e/E移到下一个word/WORD结尾(word指以非空白符分割的字符,WORD指以空白符分割的字符) |
b/B上一个word/WORD开头,background |
使用f{char}移动到char字符上,t移动到前一个字符。如果第一次没搜到可用分号(;)或逗号(,)继续搜索;F反过来搜索前面的char |
0和^移动到行首,$移动到行尾,g_移动到行尾非空白字符 |
(),{}在句子间、段落间移动 |
2. 页面移动
gg/G移动到文件开头和结尾,ctrl+快速返回 |
H/M/L跳转到屏幕的开头、中间、结尾 |
ctrl+u下翻页,zz将当前行显示在中间 |
3. 增删改查
增: |
切换到插入模式i(insert),a(append),o(open in new line),A(在行尾插入)I(在行首插入)O(在上一行插入) |
gi 快速回到最后一次编辑的位置,并切换到插入模式 |
删: |
x/d,都可以搭配数字来执行多少次 |
dw(删除单词:从光标到下个单词开始的范围内),diw(删除整个单词不包含空白字符),daw(delete around word,删除单词并包含它周围的空格) |
dd 删除当前行 |
D删除当前行所有内容,只留下一个空行 |
dt+) :delete to )删除字符直到) |
d0 删到下行行首 |
d$ 删到行尾 |
改: |
r(replace,更改一个char),c(change,配合文本对象进行快速修改),s(substitute,删除该字符并进入编辑模式,可以数字+s) |
R(不断替换下一个字符),S(删除该行字符并进入编辑模式) |
cw(删除该单词并插入),caw,ciw,ct+char |
查: |
使用/或?进行前向/反向搜索 |
使用n/N跳转到下一个/上一个匹配 |
使用*/#进行当前单词的前向/后向匹配zo |
4. 文本对象批量操作
[number]<command>[text object] number:次数 command: d(delete),c(change),y(yank),v(view,可以以这种规则去选择单词、句子或段落) text object:w(word),s(sentence),p(paragraph) iw表示inner word,aw表示a word,它不但会选中当前单词,还会包含当前单词之后的空格。同理,is,as,ip,ap。 |
5. 复制粘贴
y(yank)、p(put) |
yy 复制一行,yiw,yis,yip. |
二、编辑模式
ctr l+h删除上一个字符 |
ctrl+w删除上一个单词 |
ctrl+u删除当前行 |
ctrl+t正行对齐(tab) |
三、选择模式
普通模式下按 v 、V、ctrl+v |
选中后按u/U 切换大小写 |
四、命令模式
1. 常用命令
e(edit) filename 打开文件 |
vs(vertical split),:sp(split) 分屏 |
set nu 显示行号 |
:n 跳到第n行 |
reg 打开寄存器栏 |
:set autoindent 设置自动缩进(在编写代码时可以使用,但是粘贴python代码会有缩进错乱的问题) |
:set paste,:set nopaste 解决上述问题 |
res 应该是reset,重置界面 |
% s/foo/bar/g (%:全部文件,s:替换,foo->bar,g:全局)全局替换 |
q 退出当前文件 |
syntax on(语法标亮,应该需要插件) |
set hls(highlight search) 将搜索内容高亮 |
set incsearch 增量搜索 |
set expandtab 此配置使得在Vim插入模式下按下 Tab 键时,输入到Vim中的都是空格 |
搜索替换 [range]s[ubstitute]/{pattern}/{string}/[flags] |
range 表示范围,比如:10,20表示10-20行,%表示全部; |
pattern是要替换的模式 |
string是替换后的文本 |
flags: g(global)表示全局范围内执行 c(confirm)表示确认,可以确认或者拒绝修改 n(number)报告匹配到的次数而不替换,可以用来查询匹配次数 |
2. 多文件操作
Buffer
:ls 列举当前缓冲区 |
:b n 跳转到第n个缓冲区 |
:bpre, :bnext, :bfirst, :blast |
:b buffer_name 可以使用tab补全 |
Window
窗口切换: |
<Ctrl+w>w/W 在窗口间循环切换 |
<Ctrl+w>k/K 切换到上边的窗口 |
<Ctrl+w>j/J 切换到下边的窗口 |
<Ctrl+w>h/H 切换到左边的窗口 |
<Ctrl+w>l/L 切换到右边的窗口 |
重排窗口: |
<Ctrl+w>= 适应化所有窗口 |
<Ctrl+w>_ 最大化当前窗口的高度 |
<Ctrl+w>| 最大化当前窗口的宽度 |
[n]<Ctrl+w>_ 当前活动窗口的高度调整为n行 |
[n]<Ctrl+w>| 当前活动窗口的宽度调整为n列 |
Table
tabnew tab_name 打开一个名为tab_name的新的标签页 |
gt 在标签页间切换 |
3. 自动化操作
VIM宏使用流程
{command}:qa //开始录制,并将动作记录到寄存器a中,a可以更改为a-z中的任意一个 |
{normal}选择某一行进行操作 |
{command}:q //取消录制 |
{view}选中需要执行该宏的行 |
{command}:normal @a //执行宏 |
Normal命令批量操作
选中需要操作的行 |
{command}:normal 命令集 比如,normal A" ,这句话的意思就是在所选行的每行末尾添加双引号。 |
自带补全命令
Command | Description |
---|---|
Ctrl+n | 普通关键字 |
Ctrl+x Ctrl+n | 当前缓冲区关键字 |
Ctrl+x Ctrl+i | 包含文件关键字 |
Ctrl+x Ctrl+] | 标签文件关键字 |
Ctrl+x Ctrl+k | 字典查找 |
Ctrl+x Ctrl+l | 整行补全 |
Ctrl+x Ctrl+f | 文件名补全 |
Ctrl+x Ctrl+o | 全能补全 |
其他补全方式
补全单词:ctrl+n,ctrl+p |
补全文件名:ctrl+x ctrl+f |
代码补全:ctrl+x ctrl+o ,开启代码补全需要开启类型检查,安装插件 |
4. 配色更改
:colorschme 显示当前主题配色 |
:colorscheme <Ctrl+d> 显示所有配色 |
:colorscheme 配色名 修改配色 |
注意neovim的配置文件在init.vim下(vim的配置文件名字是vimrc) |
五、vim进阶
1. 重要命令
let $变量名="path" 给变量赋值,便于打开文件 |
echo $变量名 查看变量映射的地址(一些默认变量:$VIM,$HOME) |
stdpath('config')配置文件的路径;stdpath('data')数据文件的路径;stdpat('cache') |
scriptnames 查看加载时加载了那些vim脚本 |
source fileName 将该文件作为配置文件;source % ,Flush by current file |
2. vim 配置文件
如果用的是Neovim,配置文件在neovim/share/nvim/sysinit.vim
如果是Vim,配置文件在 $HOME/.vim/vimrc
3. vim 脚本
h options-list 查看可用命令
推荐一本书《笨方法学VimScript》
4. vim 插件
常见的插件管理器:vim-plug,Vundle,Pathogen,Deiv.Vim,volt
vim-plug Commands: Pluginstall,PlugStatus,PlugClean,PlugUpdate
一些好用的插件推荐:
plug "plugin manager"
airline
airline-theme
starify
molokai "a theme on vim"
nerdtree
markdown-preview
标签:常用,word,补全,ctrl,Ctrl,vim,单词,指令,Vim From: https://www.cnblogs.com/sonor/p/17112487.html