Vim常用命令及配置方案,学习笔记

By admin in 美高梅手机版4858 on 2019年5月5日

几句话

很久从前就接触到vim,初学那阵认为vim很光彩夺目,但实在对菜鸟不是很团结。笔者也就总结看了下基本操作就上手了,但又不是漫漫在vim下工作,这就导致了每1回重复接纳vim都要再去回温下基本操作,卓殊悲伤,所以就趁这一个时机把基本操作都记录下来,一来能够看作自身的笔记,2来希望得以帮到同样和本身同一用过vim但却忘得大致的人。此外,这里也记录一下谈得来的vim配置,那个布局恐怕并未此外网上好友分享的那么强劲,但最少年足球够简单,能够升高和谐编码的频率。

vim定义

vim是从vi发展出来的三个文本编辑器。代码补完、编写翻译及错误跳转等方面编制程序的效益尤其足够,在程序员中被广大应用。和Emacs并列成为Unix系统用户最欣赏的编辑器。最初的简称是VI
Imitation,随着成效的缕缕增添,正式名称改成了Vi
Improved。未来是在开放源代码格局下发行的自由软件。

按功用区划出命令

vim常用命令

率先先简单梳理一下vim的做事方式。vim有三种方式,分别是一声令下格局(Command
mode),输入形式(Insert mode)和下线命令格局(Last line mode)

美高梅手机版4858 1

大致来说正是,当大家刚张开vim,恐怕应用vim展开了1个文书,终端上显得着公文的剧情,那时候正是命令方式(如上图正是刚展开1个文件的图景,此时光标位于第二行行首处),在现在的意况下,键盘输入小写的i
a o 恐怕大写I A
O中的当中二个,就可以进入输入情势,各种开关的切实意思如下:

按键 具体意义
i 从目前光标所在处输入
I 在目前所在行的第一个非空格符处开始输入
a 从目前光标所在的下一个字符处开始输入
A 从光标所在行的最后一个字符处开始输入
o 在目前光标所在的下一行处输入新的一行
O 在目前光标所在的上一行处输入新的一行
r 继续输入一个字符以取代光标所在处后面单个字符,而后返回命令模式
R 新输入的字符会一直取代光标所在处后面的字符

当大家应用上述开关进入输入格局,合营方向键编辑好文件内容后,使用ESC键可脱离输入格局,回到命令形式,vim的大部限令皆以在一声令下情势下使用。
指令形式下的按钮十一分抬高,首要的操作为光标移动、复制粘贴、寻觅替换
光标移动的主导开关如下:

按键 具体意义
h 或 向左箭头键(←) 光标向左移动一个字符
j 或 向下箭头键(↓) 光标向下移动一行
k 或 向上箭头键(↑) 光标向上移动一行
l 或 向右箭头键(→) 光标向右移动一个字符

在上头的底蕴上,假诺你想光标的职位贰遍活动多行照旧在同壹行上运动多少个字符,能够有以下二种艺术:

  • 间接输入数字并在其后输入相应的取向,比如输入20jVim常用命令及配置方案,学习笔记。或20↓代表光标向下移动20行,输入20l20→表示光标向右移动212个字符。
  • 输入数字后加空格能够使光标向右移动n个字符,举例20[space]即和地方第2条的20l20→实现同样的功力,为了简单一点,小编个人以为一旦不是vim深度用户来说,大家得以一直放任纪念这一个命令。一样性质的命令还有20[enter],表示光标向下活动20行
  • ctrl+f/b/d/u能够用来上下翻页,但是对许多人的话不要求去记那些麻烦的命令,我个人尤其推荐使用键盘上的Page UpPage Down来上下翻页
  • 0$能够用来运动光标到行首或行尾,同样,笔者要么认为没供给去纪念这么些命令,而是直接运用HomeEnd来实现平等的效应

此外,还有部分很便利的操作值得单独拎出来进一下:

按键(区分大小写) 具体意义
H(High) 光标移动到这个屏幕的最上方那一行的第一个字符
M(Middle) 光标移动到这个屏幕的中央那一行的第一个字符
L(Low) 光标移动到这个屏幕的最下方那一行的第一个字符
G 移动到这个文件的最后一行(常用)
gg 移动到这个文件的第一行(常用)
nG 移动到这个文件的第n行

复制粘贴的操作比较散乱,但也并不是从未规律可循,具体如下:

按键 具体意义
x或[delete] 删除光标后面的单个字符,
X或[backspace] 删除光标前面的单个字符
nx 连续向后删除 n 个字符。同理,可以有大写的nX
dd 删除光标所在的一整行
ndd 删除光标向下的n行(包括光标那一行)
d+某个位置 删除光标处到那个位置的所有内容。例如d1G删除从光标到第一行的所有内容,dG删除从光标到最后一行的所有内容,d$d[End]删除从光标处到行尾的所有字符。以此类推
yy 复制光标所在的那一行(常用)
nyy 复制光标向下的n行(包括光标那一行)
y+某个位置 复制选取的范围,选取范围如前面d+某个位置所示
p 将已复制的内容在下一行粘贴
P 将已复制的内容在上一行粘贴
J 将光标所在行与下一行的数据结合成同一行,即在删除该行和下一行之间的换行符。
u 复原前一个动作(常用)
[ctrl]+r 重做上一个动作(常用)
.(小数点) 重复前一个动作(常用)

招来替换有的为了简洁一点,就只提一下寻觅,替换部分就不关乎了

按键 具体意义
/[要搜索的字符] 向光标之下寻找一个匹配的字符串。如/int会搜索匹配int
?[要搜索的字符] 向光标之上寻找一个匹配的字符串。

在上边搜索字符串的底蕴上按回车键,就可使光标跑到找出到的字符串处,那时输入n光标就能够跳到下2个或上贰个同盟的字符串处,具体是上可能下取决于刚同志才进行的是/string还是?string,而输入大写的N则是与题诗n相反的趋势。(注意,当推行n达到文件尾部时就能够循环跳到顶部,反之亦然)

好了,将来大家早已能够编辑文件内容了,那什么样保存文件呢?一般境况下,当须要保留或退出文件时,大家习于旧贯性按一下ESC键以进入命令格局(当然假若已经在指令方式下也习于旧贯性按一下呢),那时输入加相应的指令就能够对文本施行相应的操作,这里需求注意一点的便是,假诺你对该公文并未对应的权柄,那么试行相关操作将会被拒绝,举个例子笔者在ubuntu下想要修改笔者从没权限的公文,vim会提醒权限拒绝,小编索要进行sudo vim filename以root权限进入vim才能修改文件。

按键 具体意义
:w 保存编辑的内容
:w! 若文件属性为只读,强制保存编辑的内容,需要相应的权限
:q 退出vim
:q! 强制离开不保存编辑过的内容
:wq 保存后退出vim
:wq! 强制保存后退出vim
ZZ 若文件没有改动,则不储存离开,若文件已经被改动过,则储存后离开!
:w filename 另存为filename
:! command 暂时离开vim到命令行模式下执行 command 的显示结果!例如『:! ls /home』即可在 vi 当中察看 /home 底下以 ls 输出的档案信息!

怎么要读书应用vim编辑器?

(1)全数的Unix
like系统都会停放vi文本编辑器,别的的文书编辑器则一定不会存在。

(2)大多软件的编排接口都会主动调用vi。

(三)vim具备程序编写制定的力量,能够主动以字体颜色辨别语法的正确性,方便程序设计。

(肆)程序简单,编辑速度快。

光标移动

w一抬手一动脚光标到下一个单词的词首,b运动光标到上一个单词的词首;e挪动光标到下一个单词的终极,ge移动光标到上2个单词的末尾。
^或者0(数字零)光标移至当下行首。(0 – 移动到行首
^ – 移动到行首的非空白符)
$光标移至目前行尾
#j#k向下或进步移动#行(set relativenumber 之后非凡管用)
gg光标移动到全文开端,在vim才有效,vi中没用
GG光标移动到全文结尾
G 转到终极一行行首
ctrl u
ctrl d决定显示屏滚动,同时光标跟着定位走。通过:set scroll=10
能够设定三回滚动的比如。

括号跳转:
% 跳到极度的括号处,如下全部括号类型:{ } [] ()
[{ 跳到本代码块(由{}界定)的起头
[} 跳到本代码块的末梢

与系统剪切板交互

这里还要重视提一下vim与系统之间什么进展粘贴复制,大家精通,上面的粘合复制命令只可以在vim里面使用,不能将vim里面包车型客车内容复制出来可能将外面包车型大巴剧情粘贴进去,那将大大下降了我们CV键的威力,所以如何做呢?

  1. 先是查看vim版本是或不是协理clipboard
    vim --version | grep "clipboard"
    万1显示clipboard前边有一个小小的的减号,表达不协理。
  2. 不协理的话须求安装图形化分界面的vim,使用如下命令
    sudo apt-get install vim-gnome
  3. 安装好通晓后采用“+y实行复制,使用”+p开始展览粘贴,协作使用vV入选内容
  • 当然,假如您感觉上边的下令太复杂了,你能够在上面所述的铺排文件里充分set clipboard=unnamedplus
    那样就足以一向运用 y p命令粘贴复制了。

vim的四个情势:插入形式、命令情势、低行格局。

插入情势(insert mode):在此情势下能够输入字符,按ESC将回来命令格局。

一声令下形式(command
mode):能够决定荧屏光标的位移、字符、字或行的去除,移动复制某区段及进入Insert
mode下,或许到last line mode 。

低行方式(last line
mode):能够保留文件、退出vim、设置编辑意况,如搜寻字符串、列出游号等。

编辑(增删改)

a: 在光标的背后开端插入字符
A 在1行的结尾处起始插入字符
i 在光标处插入字符
I 在一行的始发处开头插入字符
o 在光标所在地方的下一行张开新行插入
O 在光标所在地点的上一行展开新行插入
ea 从当下单词末尾伊始插入(格外实用)
dd 剪切当前行:,删除多行:3dd(表示删除从光标地方上马的连天3行)
dw 剪切单词,能够落成清空左边空白符。
J(大写) 将下1行合并到当下行
r
替换单个字母,注意假使是替换为大写字母,提出用shift加目的字母触发,而毫无用
caps lock。1个是从操作角度思念,还得剩下按一下 caps lock
还原操作;另贰个是众多仿 vim 编辑器不识别 caps lock 开关
操作括号Nene容:
ci’、ci”、ci(、ci[、ci{、ci< 分别退换这个配对标点符号中的文本内容
di’、di”、di(、di[、di{、di< 分别删除这么些配对标点符号中的文本内容
yi’、yi”、yi(、yi[、yi{、yi< 分别复制那个配对标点符号中的文本内容
vi’、vi”、vi(、vi[、vi{、vi< 分别入选那个配对标点符号中的文本内容
c作者的意趣是改换,即除去并进入插入方式。
cc 清空当前行, 然后进入插入形式
cw 修改单词。修改光标地点到单词结尾处的单词。
caw
修改单词。修改光标所在的全体单词,即所在的全体单词全体剔除后进入插入形式。
ct{某个字母}
修改单词。修改光标地点到某些字母之间的单词,只要蒙受首字母就赶回。

安顿方案

其多头是二个简便的vim配置,留下了一些本身觉着要求的作用,未有那么多花俏的职能,也不像英特网一些稿子分享的配置成炫耀的IDE,小编个人一定的条件便是轻巧,使用方便就可以。
应用办法:保存成名字为.vimrc的公文放在目录下,即用户个人目录下就可以。

"********************************************************
"                   一般性配置                          *
"********************************************************

"关闭vim一致性原则,避免以前版本的一些bug和局限
set nocompatible

"显示行号
set number

"设置在编辑过程中右下角显示光标的行列信息
set ruler

"在状态栏显示正在输入的命令
set showcmd

"设置历史记录条数
set history=1000

"设置取消备份 禁止临时文件的生成
set nobackup
set noswapfile

"设置匹配模式,类似当输入一个左括号时会匹配相应的那个右括号
set showmatch

"设置C/C++方式自动对齐
set autoindent
set cindent

"开启语法高亮功能
syntax enable
syntax on

"指定配色方案为256色
set t_Co=256

"设置搜索时忽略大小写
set ignorecase

"实时显示搜索结果
set incsearch

"配置backspace的工作方式
set backspace=indent,eol,start

"设置在vim中可以使用鼠标
set mouse=a

"设置tab宽度
set tabstop=4

"设置自动对齐空格数
set shiftwidth=4

"设置退格键时可以删除4个空格
set smarttab
set softtabstop=4

"将tab键自动转换为空格
set expandtab

"设置编码方式
set encoding=utf-8

"自动判断编码时 依次尝试以下编码
set fileencodings=ucs-bom,utf-8,cp936,gb18030,big5,euc-jp,euc-kr,latin1

"检测文件类型
filetype on

"针对不同的文件采取不同的缩进方式
filetype indent on

"启动智能补全
filetype plugin indent on

"括号自动补全
inoremap ( ()<ESC>i
inoremap [ []<ESC>i
inoremap { {}<ESC>i
inoremap < <><ESC>i

"直接使用y p进行系统级复制粘贴
set clipboard=unnamedplus

vim的基本操作

1. 进入vim

开荒终端,输入vim,按回车键,就进来了vim。

美高梅手机版4858 2

此为默许的通令形式

2. 切换至插入情势(insert mode),编辑文件

在命令格局(command mode)下按一下假名[i]就足以进来插入形式(Insert
mode),那时候就能够开端输入文字了。

美高梅手机版4858 3

可以输入文字啦

3. Insert的切换

当处于插入方式(Insert
mode),你就只能一直输入文字,假诺你开掘输入错了文字,想用光标键往回移动,将该字删除,将在先按一下ESC键转到命令情势(command
mode)再删除文字。

美高梅手机版4858 4

能够使用命令方式下功效键删除错误文字

4. 切换至低行情势能够脱离vim及保存文件

在命令行形式(command mode)下,按一下[:]冒号键进入低行形式(Last
line mode)

:w filename(输入[w filename]将文章以内定的公文名filename保存)

:wq(输入[wq], 表示保留并推出vim)

:q!(输入[q!], 表示不保留强制退出vim)

美高梅手机版4858 5

低行形式

多窗口、多文本编写制定

一声令下格局(command mode)常用作用键

a)插入格局

  1. 按[i]切换进入插入情势(insert mode),
    按“i”进入插入形式后是从光标当前职分上马输入文件;

  2. 按[a]跻身插入形式后,是从近日光标所在地方的下贰个职分上马输入文字;

  3. 按[o]进入插入情势后,是插入新的一行,从新的一条龙的行首初阶输入文字。

b)从插入形式切换为命令形式

按【ESC】键。

c)张开文件、保存、关闭文件(vim命令形式下利用)

  1. vim filename //打开filename文件

  2. :w //保存文件

  3. 美高梅手机版4858 ,:w vpser.net //保存至vpser.net文件

  4. :q //退出编辑器,如若文件已修改请使用上边包车型客车一声令下

  5. :q! //退出且不保留文件

  6. :wq //退出编辑器且保存文件

d)
插入文本或行(命令情势下利用,试行上边发号施令后将进入插入格局,按ESC键可脱离插入格局)

a //在日前光标地方的入手增加文本

i //在脚下光标地点的左边增加文本

A //在当前行的末为地点增添文本

I //在当前行的上马处加多文本(非空字符的行首)

O //在当下行的下边新建1行

o //在此时此刻行的上面新建1行

卡宴 //替换(覆盖)当前光标地点及末端的多少文书

J //合并光标所在行及下壹行为一行(如故在指令情势)

e) 移动光标(vim命令格局下使用)

采取前后左右方向键:命令格局h(向左)、j(向下)、k(向上)、l(向右)。(空格键向右、Backspace向左、Enter移动到下一行首、-移动到上一行首)。

0(数字0)是让光标移动到当前行的衣着,$是让光标移动到当下行的行尾。

f)删除、恢复字符或行(vim命令形式下行使)

x //删除当前字符

nx //删除从光标开首的n个字符

dd //删除当前行

ndd //向下删除当前行在内的n行

u //裁撤上一步操作

U //撤废对现阶段行的富有操作

g)搜索(vim命令形式下使用)

/vpser //像光标下寻觅vpser字符串

?vpser //像光标上搜索vpser字符串

n //像下搜寻前三个追寻动作

N //像上搜寻前八个查找动作

h)跳至钦定行及上下翻页(vim命令格局下采纳)

n+ //像下跳n行

n- //像上跳n行

gg让光标移动到第3行行头

nG //跳到行号为n的行

G //跳至文件的最底层(让光标移动到最终一行行头)

{让光标移动到眼下段落的kai开端, }让光标移动到当前段落的尾声

i)设置行号(vim命令情势下利用)

:set nu //展现行号

:set nonu //撤消呈现行号

j)复制、粘贴、删除(vim命令方式下使用)

复制或删除1段内容,先按v键然后移动光标(用方向键向h左i右k上j下),能够看见被选中的字符,选中要复制或删除的剧情,然后输出y(复制)、d(删除)、p(粘贴)。

yy //将当前行复制到缓存区, 也得以用“ayy”复制, a
为缓存区,a也足以替换为a到z的放四字母,能够形成四个复制职务。

nyy
//将当前行向下n行复制到缓存区,也得以用“anyy”复制,a为缓存区,a也足以替换为a到z的大四字母,能够达成多个复制任务。

y^ //复制从光标到行首的内容

y$ // 复制从光标到行尾的始末

p
//粘贴剪切板里的始末在光标后,假若利用了后面包车型地铁自定义缓冲区,提出利用“ap”举办粘贴

P
//粘贴剪切板里的剧情在光标前,假如应用了前边的自定义缓冲区,建议选用“aP”进行粘贴

k)替换(vim命令方式下利用)

:s/old/new //用new替换行中第一遍面世的old

:s/old/new/g //用new替换行中保有的old

:n,m s/old/new/g //用new替换从n到m行里具备的old

:%s/old/new/g //用new替换当前文件里具有的old

o)编辑别的文件

:e otherfilename //编辑文件名称叫otherfilename的公文。

p)修改文件格式

:set fileformat=unix
//将文件修改为unix格式,如win上边包车型大巴公文文件在linux下会冒出^M。

小说小说权归饥人谷_sunny和饥人谷全体,转发须表达来源

多窗口

(^表示ctrl)
^wv垂直细分窗口(复制3个本窗口,其实是公用一个 buffer)
^wn水平划分出新的未命名窗口
^wr向右或向下方沟通窗口,而^wR则和它趋向相反
^ww切换窗口,forcus 和 blur 的切换
^wo只保留当前窗口(window only)
:close 关闭当前窗口

多缓冲区文件

:ls 列出装有张开的缓冲区文件(等价于 :buffers
:b {number, expression} 跳转到内定缓冲区
:bd 关闭当前的单个缓冲区文件(注意关闭窗口不会关闭缓冲区文件)
ctrl+6 切换成下多少个文本(必须优先张开过任何文件才得以切换)

多页签

:tabc 关闭当前页签
gt 切换页签(vim 命令方式)

按不相同形式划分出的一声令下

命令行情势(Command-line mode)

第3是对文本全体举行的操作,包蕴安装,查找
:tab 文件路径 同时编写制定三个公文 gt 进行切换分歧Tab键
命令行情势下取到从第几行到第几行.表示近年来行
1,.意味着从第2行到眼下行 ,例如:1,.d就同样代表删除全部
echo $VIM(注意分寸写)彰显全局.vimrc的任务
:help {命令}须求时刻去呼救 help
:map 查看当前键盘映射有怎样

插入形式(Insert mode)

运动光标:原生的是前后左右键,可以映射配置成ctrl键调节

inoremap <C-h> <Left>
inoremap <C-j> <Down>
inoremap <C-k> <Up>
inoremap <C-l> <Right>

指令情势(也称一般形式)(Normal mode)

决定显示屏光标的运动,字符、字或行的删减,移动复制某区段
yy复制当前行。平日与p键连用,用作复制粘贴
yw复制单词。
p粘贴。p表示粘贴别的东西进去vim
u撤销
ctrl+r重做(注意不是command)
ZZ(注意是大写) 保存并脱离vim
>><<单行缩进(就算光标在行中间地点也足以)
J 合并两行
. 重复上一次命令

可视格局(Visual mode)

用途:选用文件的壹部分情节,以便作比方删除,复制等职业
o切换可视格局的入选端点
复制选中区域: y

选择形式(Select mode)

gh进去采纳方式,然后移动光标开头选中。当再按下字符时可直接举行轮换。

一声令下方式→可视格局
v三个字符三个字符的选项
V1整行一整行的挑选
ctrl+v列选拔格局,能够选用竖行文本

别的综合作用划分出的指令

  • 保存并脱离vim::wqZZ:x

  • 底行命令行字符替换:
    :#,#s/old/new/g 其中 #,#
    代表的是替换操作的多少行中前前后后两行的行号。
    :%s/old/new/g
    则是替换整个文件中的每一个相称串。等价于%s;old;new;g(用分号做替换分隔符也足以)

  • 寻找作用:向前寻觅/searchStr 向后找寻?search_text

  • 全选:ggVG
    有点解释一下上边的吩咐
    gg 让光标移到全文发轫
    V 是进入Visual(可视)方式,并且是整行整行选择
    G 光标移到终极壹行

  • 全文格式化(format)缩进:gg=G

  • 避防粘贴时由智能缩进变成排版混乱::set paste

  • 权且再次来到命令行分界面以及再次回到vim
    mac 下能够运用 ctrl+z (挂起vim)以及 fg(bring to
    foreground) 来返回 VIM
    但在 cmder
    中就好像不起效用,能够尝试选拔:sh来退出暗中认可shell,重回命令行分界面以及exit来返回VIM

  • 什么查看vim 是不是具有有个别意义
    vi --version |grep clipboard查看是或不是享有clipboard
    成效,有+则注明因此成效。-则注解无此作用。clipboard
    命令会潜移默化vim中的复制是不是能复制到系统剪贴板。

  • 上下移动某单行
    :{原始行号} m {移动到的目标行号}
    移动到第几行(注意不是周旋距离是纯属距离),从 0 早先总括。
    :m +1 下移 1行
    :m -2 上移 1行
    或者dd{k、j移动}p也不错。

  • {行数}G转到钦点的行数,举例:九G,转到第七行。提出 G 用shift+g
    触发,而并非用 caps lock + g 触发。

  • 插入列(等价于多光标输入)
    ctrl+v跻身可视列模式
    shift+i从可视列格局进入插入方式,并输入要插入的始末
    Esc半途而废到命令形式,在每行的选定区域内新选取中的内容。


其他

vim不扶助在command按钮上绑定急迅键
操作系统差别。windows系统下用gvim命令,linux系统下用vim命令。

插件

emmet-vim插件
<c-y>,来触发标签扩大,也足以自制 snippet 看链接,具体没商讨过。

nerdtree插件——file
drawer
深远应用
nerdtree(许多快捷键要求更进一步深造)

  • 在vim 中唤醒 nerdtree 操作区:
    tt (自制飞速键)命令方式下切换目录文书档案
  • 在 nerdtree 操作区的有个别基本操作:
    q脱离操作区
    ?切换协理菜单
    go 预览文件内容

vim-autoformat插件
:Autoformat机动格式化,近年来针对 html

[ctrlp] fuzzy file finder (尚未利用)
[fugitive] Git Tool。有部分 Git 的高端用法,比如火速切换种种版本的
commit 代码,1个按钮多次回涨代码。比方能来看种种行代码是何人提交的。

Vim 寄存器

  • 使用d, c, s,
    x等会删除字符的命令时,被删去字符会进入无名寄存器””。
  • "*"+在Mac和Windows中,都以指系统剪切板(clipboard),举个例子"*yy就可以复制当前行到剪切板。
  • 寄存器被储存在 ~/.viminfo 中, 在下次重启vim时仍会加载
  • 翻看 VIM 寄存器的情节,通过:reg
    丰富系统的博客

vim中的配置项

vim的set relativenumber
set number有冲突部分,set number必须是在set relativenumber之后做。

参考资料

总有您要的编制程序书单(GitHub)https://juejin.im/entry/5920f4f0a0bb9f005f4d9535
vim插件
http://vimawesome.com/
[vim
切换页签飞快键(还没完全采取成功)]https://www.liurongxing.com/vim-tab-shortcut.html
方方先生的配备:https://github.com/FrankFang/dot-files/blob/master/vimrc

边角知识学习

y
代表从缓冲区拉至寄存器
.vimrc
设置缩进之道

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图
Copyright @ 2010-2019 美高梅手机版4858 版权所有