首页 > 其他分享 >Vim常用指令

Vim常用指令

时间:2023-02-11 21:00:26浏览次数:43  
标签:常用 word 补全 ctrl Ctrl vim 单词 指令 Vim

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

相关文章

  • Vim常用指令
    常用命令使用f{char}移动到char字符上,t移动到前一个字符。如果第一次没搜到可用分号(;)或逗号(,)继续搜索;F反过来搜索前面的charu撤销undo,<Ctrl+r>redozc折叠,zC折叠所有......
  • jenkins学习笔记之四:jenkins常用pipline DSL方法
    一、Json数据格式化(readJSON)#建议使用defresponse=readJSONtext:"${scanResult}"println(scanResult)//以下为原生方法。不建议使用importgroovy.json.*......
  • Linux常用命令之帮助和用户管理命令
    1、帮助命令一、获得命令或配置文件帮助信息:man ①、命令名称:man ②、英文原意:manual ③、命令所在路径:/usr/bin/man ④、执行权限:所有用户 ⑤、功能描述......
  • Kubernetes 常用命令
    Master节点常用命令重启apiserver#获得apiserver的pod名字exportapiserver_pods=$(kubectlgetpods--selector=component=kube-apiserver-nkube-system--output=......
  • Linux常用命令(自己维护用)
    文件操作显示文件的树状结构:tree与此同时,显示当前文件的树状结构:tree-d如下:  显示文件目录:ls与此同时,显示文件目录并显示详细信息:ls-lhls-all......
  • 763~765 JSP指令,概述,page指令
    Jsp:他是一个特殊的页面不仅可以写java代码也可以写HTML1.指令作用用于配置Jsp页面,导入资源文件格式:多个属性值中间空格隔开<%@指令......
  • JSTL常用标签
    常用的JSTL标签1.if:相当于java代码的if语句1.属性:test必须属性接收boolean表达式日光表达式true则显示if标签体内容如果为fa......
  • linux源码解析06–常用内存分配函数kmalloc、vmalloc、malloc和mmap实现原理
    1.kmalloc函数static__always_inlinevoid*kmalloc(size_tsize,gfp_tflags){ if(__builtin_constant_p(size)){#ifndefCONFIG_SLOB unsignedintindex;#end......
  • linux004之 vi和vim编辑器
    vi、vim编辑器简介:是linux中的文本编辑器,用来在linux系统中查看或编辑文本文件的命令,相当于windows文本编辑器。vi和vim的区别,vim是增强版,功能相比vi是增强了......
  • JSTL-常用标签-if、choose、foreach
    JSTL-常用标签-ifif:相当于java代码的if语句1.属性:test必须属性,接收boolean表达式如果表达式为true,则显示if标签体内容,如果为false,则不显示标签体......