当前位置:   article > 正文

Vim入门技巧&常用命令整理_vim 7.4.629

vim 7.4.629

书籍:《Vim实用技巧》(第2版)
ISBN: 9787115427861
作者:[英] Drew Neil
译者:杨源 车文隆
页数:289页
阅读时间:2020-04-05
推荐指数:★★★★★

操作环境:CentOS7.7
vim :7.4.629
Windows下载地址:https://github.com/vim/vim-win32-installer/releases/download/v8.2.0381/gvim_8.2.0381_x64.exe
github官网:https://github.com/vim/
演示代码或文件:https://pragprog.com/titles/dnvim/source_code
帮你自动完成重复的工作!
入门只需一分钟,穷其一生才能达到精通.
只做一件事,并做到极致—UNIX哲学

初时,先有ed,ed为ex之父,ex为vi之父,vi为Vim之父

1.搭建实验环境

1.1 直接使用CentOS系统

在这里插入图片描述
然后输入vim会进入vim,并显示一下信息。在这里插入图片描述

1.2Windows版本安装教程

https://blog.csdn.net/WeiHao0240/article/details/104897089

2.常用系统指令

指令说明
vim --version输出vim基本信息
vim -u NONE -N-u NONE不加载vimrc,-N会使能“nocompatible”选项,防止进入vi兼容模式
vim -u cod/essential.vim取代你的vimrc文件
vim 文件名/文件路径vim打开了你后面跟的文件,如果没有就会新建这个文件

3.vim编辑文件

vim jack.txt

在这里插入图片描述

首先会进入普通模式

在这里插入图片描述

i进入插入模式
然后输入要编辑的内容

在这里插入图片描述

1.按ESC退出插入模式
2.按 :进入命令行模式
3.输入wq命令回车,保存并退出

在这里插入图片描述

4.常用vimrc配置

windows版本在安装目录下D:\Program Files\Vim\_vimrc文件
linux在/etc/vim/vimrc修改全局文件

" tab设置空格数
set tabstop=4    
" 退回tab的空格数
set softtabstop=4
" 每一级缩进的长度
set shiftwidth=4
" 用制表符表示一个缩进
set noexpandtab
" 显示行号
set nu
" 自动缩进
set autoindent
" C语言自动缩进
set cindent
" 设置保留历史命令条数
set history=200
" 全局设置忽略查找大小写
set ignorecase
" 全局设置智能大小写
set smartcase
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

5.常用vim操作符

操作符 + 动作命令 = 操作
操作符重复两次时会作用于当前行。

操作符说明
c修改
d删除
y复制到寄存器
g~反转大小写
gu转换为小写
gU转换为大写, gUU作用于当前行
>增加缩进
<减小缩进
=自动缩进
!使用外部程序过滤{motion}所跨越的行

6.常用vim指令-普通模式

单词:由数字/字母/下划线/. '组成
字串:非空字符组成`

指令说明
.重复上次的操作:[普通模式,插入模式)&& [插入模式,ESC]
*匹配当前光标单词,并查找
/pattern + 回车文档中查找下一处匹配项 ,n下一个,N上一个
?pattern + 回车文档中查找上一处匹配项,n下一个,N上一个
: [range]s[ubstitute]/target/replacement/[flags]查找 替换,&下一个,u撤销,最后标志位g代表全局,c代表需确认,n代表不执行替换仅报告匹配次数&上一个标志位
:%s/target/replacement/g查找替换全部,u撤销.:%s///gn上次查找字符的个数
"%当前文件名
"#轮换文件名
".上次插入文本
":上次执行Ex命令
/上次查找模式
/\c忽略大小写查找
/\C强制大小写查找
/\vvery magic模式查找,一般查找需要用\转义(]{ .这个模式不需要
/\V原义查找,特殊字符不需要转义
/\v<单词>完整单词匹配
"0P黏贴第一次复制寄存器内容
"_diw黑洞寄存器
"+p将系统 粘贴板内容复制到当前位置,插入模式用Ctrl+r++
``当前文件上次跳转动作之前的位置
`{letter}跳转到指定标记(小写字母是本文档,大写字母是全局)
`.上次修改的地方
`^上次插入的地方
`[上次修改或复制的起始位置
`]上次修改或复制的结束位置
`<上次高亮的起始位置
`>上次高亮的结束位置
%允许在一组开闭括号之间跳转
0光标移动到实际行的行首
g0光标移动到屏幕行的行首
^光标移动到实际行的第一个非空白字符
g^光标移动到屏幕行的第一个非空白字符
$光标移动到实际行的行尾
g$光标移动到屏幕行的行尾
i、a当前光标后,插入模式
b移动端单词开头
u撤销上一步的操作
e定位到单词最后一个字符
c进入修改状态
y进入复制状态
p黏贴到光标之后
v进入面向字符的可视模式
x剪切当前光标下的字符
j下一行光标所在列
k上一行光标所在列
h光标往左移动一个字符
l光标往右移动一个字符
o光标所在行,回车,插入模式
s删除当前光标字符,插入模式
x删除当前光标字符
r替换当前光标字符
w定位到下一个单词
q{register}进入宏记录模式,:reg 寄存器名查看宏自定义内容.录制时确保每条命令都可重复执行.大写的寄存器名进入追加模式
@{register}执行指定宏寄存器内容,@@执行最近调用过的宏
m{letter}给当前光标位置创建标记(小写字母是本文档,大写字母是全局)
f{char}查找当前光标行后,输入单个字符,定位字符上,按;定位下一个位置,按,定位上一个位置
t{char}查找当前光标行后,输入单个字符,定位字符前,按;定位下一个位置,按,定位上一个位置
A光标所在行尾,插入模式
C删除当前光标后所有字符,插入模式
E定位下一个空格或符号
P黏贴到光标之前
S删除当前行所有字符,并在此行首,插入模式
I光标所在行首,插入模式
K单词的说明手册,:q退出
J当前行和下一行连接
R进入替换模式
U大小写转换
V面向行的可视模式,批量选择操作
G文章行尾开头
W定位到下一个单词
F{char}查找当前光标行前,输入单个字符,定位字符上,按;定位下一个位置,按,定位上一个位置
T{char}查找当前光标行前,输入单个字符,定位字符后,按;定位下一个位置,按,定位上一个位置
dt.删除当前光标行后所有内容,直到.
d/ge删除当前光标行后所有内容,直到ge
dd剪切当前行
db删除此光标前到空格的文字,保留当前光标字符
dw删除整个单词 ,保留空格
daw删除整个单词,并去掉空格
[数字]g跳转到数字行
gg行首
ga显示字符编码
ge反向移动到上一个单词的结尾
gj屏幕行往下移动
gk屏幕行往上移动
gp黏贴当前行之前
gP黏贴当前行之后
gv进入上次由可视模式选中的文本范围
gg打开当前光标下的路径文件
gR进入虚拟替换模式
gn进入面向字符可视模式,并选中下一处匹配
gN进入面向字符可视模式,并选中上一处匹配
gU将指定文本转换成大写
cl删除当前光标后一个字符,插入模式
cw删除当前光标单词,插入模式
cW删除当前字串,插入模式
c3w删除3个单词
ci"修改双引号的内部内容
cit修改标签的内部内容
yit拷贝标签的内部内容
3cw删除一个单词,执行三次。数字可以用在所有指令上
ko当前光标,上一行,插入模式
yyp复制一行,并回车黏贴
yap复制段落,ap当前段落
qx{changes}q执行一系列修改,@x继续,u撤销
c + $删除当前行,并在此行首插入模式
$ + a光标所在行尾编辑
^ + c删除当前行,并在此行首插入模式
^ + i光标所在行首编辑
{数字}Ctrl + a首先光标到数字,就会按你输入的数字加上光标上的数字
{数字}Ctrl + x同事,是减法。 没有定位到数字,他会自动正向查找数字并运算。
Ctrl + o返回上一次打开文件的文件
Ctrl + r恢复上一步被撤销的操作,恢复撤销
Ctrl + v面向列块的可视模式
Ctrl + g最下面显示文件名,第几行,这一行占所有行的百分比
Ctrl + f向下翻一页
Ctrl + b向上翻一页
Ctrl + p自动补全单词 ,上一个
Ctrl + n自动补全单词,下一个
Ctrl + y确认当前自动补全单词
Ctrl + e还原最早输入的文本
Ctrl + w + s水平切分窗口
Ctrl + w + v垂直切分窗口
Ctrl + w + w窗口循环切换
Ctrl + w + h切换到左边窗口
Ctrl + w + j切换到下边窗口
Ctrl + w + k切换到上边窗口
Ctrl + w + l切换到右边窗口
Ctrl + w + c关闭活动窗口
Ctrl + w + o只保留活动窗口
Ctrl + w + =所有窗口等宽等高
Ctrl + w + _最大化活动窗口高度
Ctrl + w + |最大化活动窗口宽度
[N]Ctrl + w + _活动窗口高度设置N行
[N]Ctrl + w + |活动窗口宽度设置N列
Shift + $该行行尾 ,相当于end
Shift + {number}>往右缩进
Shift + <往左缩进

7.常用vim指令-插入模式

按键说明
Ctrl + h删除前一个字符(同退格键)
Ctrl + w删除前一个单词
Ctrl + u删除至行首
Ctrl + [切换到普通模式
Ctrl + o切换到插入-普通模式
Ctrl + x + s拼写更正
ESC切换到普通模式
Ctrl + r + =做算数运算,=后面输入表达式按回车即可完成运算
Ctrl + v + u{code}插入字符编码字符,其中u是当使用unicode时才加上,否则后跟三位数字
Ctrl + k + {char1}{char2}插入以二合字母表示的字符;:h digraph-table查看二合字母表

8.常用vim指令-可视模式

三种不同可视模式:操作字符文本、行文本和列块文本.
可视模式命令重复执行时,它会影响相同选择数量的文本.

按键说明
v进入面向字符的可视模式
b选择区域上一个单词开头处
c删除选择区域并进入插入模式,输入要修改的内容后只会在第一行显示按ESC,才会在之前所选区域发生变化.
o选择区域的开头和结尾切换,一端固定一端随光标移动
V面向行的可视模式,批量选择操作
U大小写转换==>等同于普通模式下的gU
VG选择当前行到最后一行
iw选择当前单词
aw选择当前单词及一个空格
iW选择当前字串
aW选择当前字串及一个空格
is选择当前句子
as选择当前句子及一个空格
ip选择当前段落
ap选择当前段落及一个空格
vit选择标签内部的内容
a"以双引号扩大选择内容
i>选中一对尖括号所有内容
gUit选择标签内部的内容,使其大小写转换
Ctrl + g可视模式和选择模式切换
Ctrl + v面向列快的可视模式

9.常用vim指令-命令行模式

:进入命令行模式,和shell下命令类似,输入Ex命令后按回车执行.
在任意时刻,可以按ESC从命令行模式切回普通模式.
/或者Ctrl+r+=访问表达式寄存器时也会进入命令行模式

命令说明
:[range]delete [x]删除指定范围内的行[到寄存器]
:[range]yank [x]复制指定范围内的行[到寄存器]
:[line]put [x]在指定行后黏贴寄存器x中的内容
:[range]copy {address}把指定范围内的行拷贝到{address}指定的行下,简写t或者co
:[range]move {address}把指定范围内的行移动到{address}指定的行下,简写m
:[range]join连接指定范围内的行
:[range]normal {commands}对指定范围内的每一行执行普通命令
:[range]substitute/{pattern}/{string}/[flags]把指定范围内出现{pattern}的地方替换成{string},简写s
:[range]global[!]/{pattern}/[cmd]对指定范围内匹配{pattern}的所有行执行Ex命令cmd ,简写g,反向简写v
:[range]!{filter}执行外部程序过滤指定范围.如:2,$!sort -t',' -k2:以逗号分隔的记录,从第二行到结尾按第二列字段升序排序
:read !{命令}执行当前命令,将输出结果保存到当前文档
:[range]write !sh读取[仅选中内容]当前文件命令并在shell中执行
:write ! sh读取当前文件命令并在shell中执行
:write! sh将前文件命令保存到sh文件中
:{cmd1} | {cmd2}管道命令,执行完命令1执行命令2
:!{外部命令}执行shell或者cmd中的命令
:!java %java执行当前文件,%代表当前文件名
:source xxx.vim执行vim脚本
:shell进入shell命令模式
:exit退出shell命令模式,返回vim
q:进入命令行窗口(历史命令,上下选择,按i进入插入模式,编辑历史命令,回车执行)
q/进入查找命令行窗口(查找历史命令,上下选择,按i进入插入模式,编辑历史命令,回车执行)
:0虚拟行,在文件第一行上方
:e刷新当前文档
:'m标记m的行
:’<高亮选区的起始行
:6t.将第6行复制到当前行下方
:t6把当前行复制到第6行下方
:t.把当前行复制下方,类似yyp
:t$把当前行复制文本结尾
:’<,’>t0把高亮选择的行复制到文件开头
:’>高亮选区的结束行
:数字光标跳转到指定行
:[数字]p打印当前行,同print;打印数字行
:[数字]d删除第数字行
: $光标跳转到最后一行
@:重复上次命令
:{start},{end}p打印从开始到结束行
: /内容/+数字,/内容/-数字匹配开始内容加上偏移量行,到结束内容减去数字偏移量行
:.,$p当前行到最后一行打印
:%p当前文档所有行打印
:’<,’>normal .对高亮选择区域执行普通模式下的.命令
Ctrl + r复制光标下的单词
Ctrl + w黏贴光标下的单词
Ctrl + a黏贴光标下的字串,空格隔开的
Ctrl + d显示已输入命令可用列表
Ctrl + f保存当前命令,并进入命令行窗口
Tab命令自动补全
Shift + Tab反向命令自动补全
[过滤字符]上下历史命令切换,前面可加前缀过滤,可在vimrc里面修改history个数
:args显示所有多个文件列表,当用vim files/*.java打开多个文件时,文件会加载到缓冲区
:first显示第一个打开文件
:next显示下一个打开文件
:bnext显示下一个打开文件
:bprev显示上一个打开文件
:bfirst显示第一个一个打开文件
:blast显示最后一个打开文件
:bufer {bufname}跳转到指定编号缓冲区
:bdelete {bufname}删除到指定编号可以多个,空格隔开缓冲区, 也可以范围删除N,M bdelete
:argdo source batch.vim对所有同时打开的多个文件一起执行batch.vim脚本
:ls显示所有被载入内存的文件列表,%表示当前窗口可见,#代表轮换文件 Ctrl+^交替文件
:vimgrep /查找字符/ **多个文件里面查找字符
:quit退出缓冲区
:qall!关闭所有,摒弃修改无需警告,简写qa
:write保存缓冲区,简写w
:wall!写入所有,摒弃修改无需警告,简写wa
:edit!放弃修改缓冲区,简写e
:edit %:h<Tab>切换点前文件所在目录路径
:sp[lit] {file}水平切分窗口,在新窗口载入file文件
:vsp[lit] {file}垂直切分窗口,在新窗口载入file文件
:clo[se]关闭活动窗口
:on[ly]只保留活动窗口
Ctrl + w +T把当前窗口移动到新标签页
:tabe[dit] {file}在新标签页打开文件
:tabc[lose]关闭当前标签页及其中所有窗口
:tabc[nly]关闭其他标签页,只保留活动标签页
:tabn[ext] {N}切换到编号为N的标签页同:{N}gt
:tabn[lext下一个标签页 gt
:tabp[revious]上一个标签页gT
:set path+=path/**添加路径,方便find查找
:set number显示行号
:set spell拼写检测,[s反向跳转,]s正向跳转,z=建议修改列表zg,zw添加删除单词
:set spelllang=en_us拼写检测语言
vim .打开文件管理器同:edit . 或者:e.
:Explore打开文件管理器,并显示活动缓冲区所在目录同:E
Ctrl + ^文件和文件管理器之间切换
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/397450?site
推荐阅读
相关标签
  

闽ICP备14008679号