vim 常用命令详解

vi: Visual Interface 可视化接口
vim: VI iMproved VI增强版

全屏编辑器,模式化编辑器

vim模式:

编辑模式(命令模式)
输入模式
末行模式
模式转换:

编辑–>输入:

i: 在当前光标所在字符的前面,转为输入模式;

a: 在当前光标所在字符的后面,转为输入模式;

o: 在当前光标所在行的下方,新建一行,并转为输入模式;

I:在当前光标所在行的行首,转换为输入模式

A:在当前光标所在行的行尾,转换为输入模式

O:在当前光标所在行的上方,新建一行,并转为输入模式;

输入–>编辑:

ESC

编辑–>末行:

:

末行–>编辑:

ESC, ESC

注:输入模式和末行模式之间不能直接切换

多行操作

1.多行注释:

  1. 首先按esc进入命令行模式下,按下Ctrl + v,进入列(也叫区块)模式;
  2. 在行首使用上下键选择需要注释的多行;
  3. 按下键盘(大写)“I”键,进入插入模式;
  4. 然后输入注释符(“//”、“#”等);
  5. 最后按下“Esc”键。

注:在按下esc键后,会稍等一会才会出现注释,不要着急~~时间很短的

2.删除多行注释:

  1. 首先按esc进入命令行模式下,按下Ctrl + v, 进入列模式;
  2. 选定要取消注释的多行;
  3. 按下“x”或者“d”.

注意:如果是“//”注释,那需要执行两次该操作,如果是“#”注释,一次即可

3.多行删除

1.首先在命令模式下,输入“:set nu”显示行号;
2.通过行号确定你要删除的行;
3.命令输入“:32,65d”,回车键,32-65行就被删除了,很快捷吧

一、打开文件

vim +# :打开文件,并定位于第#行

vim +:打开文件,定位至最后一行

vim +/PATTERN : 打开文件,定位至第一次被PATTERN匹配到的行的行首

注:默认处于编辑模式
二、关闭文件

1、末行模式关闭文件

:q  退出

:wq 保存并退出

:q! 不保存并退出

:w 保存

:w! 强行保存

:wq --> :x

2、编辑模式下退出

ZZ: 保存并退出
三、移动光标(编辑模式)

1、逐字符移动:

h: 左

l: 右

j: 下

k: 上

#h: 移动#个字符

2、以单词为单位移动

w: 移至下一个单词的词首

e: 跳至当前或下一个单词的词尾

b: 跳至当前或前一个单词的词首

#w: 移动#个单词

3、行内跳转:

0: 绝对行首

^: 行首的第一个非空白字符

$: 绝对行尾

4、行间跳转

#G:跳转至第#行

gg: 第一行

G:最后一行

5、末行模式

.: 表示当前行

$: 最后一行

#:第#行

+#: 向下的#行

四、翻屏

Ctrl+f: 向下翻一屏

Ctrl+b: 向上翻一屏

Ctrl+d: 向下翻半屏

Ctrl+u: 向上翻半屏

五、删除单个字符

x: 删除光标所在处的单个字符

#x: 删除光标所在处及向后的共#个字符

六、删除命令: d

d命令跟跳转命令组合使用

#dw, #de, #db

dd: 删除当前光标所在行
#dd: 删除包括当前光标所在行在内的#行;

七、粘贴命令 p

p: 如果删除或复制为整行内容,则粘贴至光标所在行的下方,如果复制或删除的内容为非整行,则粘贴至光标所在字符的后面

P: 如果删除或复制为整行内容,则粘贴至光标所在行的上方,如果复制或删除的内容为非整行,则粘贴至光标所在字符的前面

八、复制命令 y

下面是vim复制粘贴的基本命令:

yy复制游标所在行整行。或大写一个Y。 
2yy或y2y复制两行。 ㄟ ,请举一反三好不好! :-) 
y^复制至行首,或y0。不含游标所在处字元。 
y$复制至行尾。含游标所在处字元。 
yw复制一个word。 
y2w复制两个字(单词)。 
yG复制至档尾。 
y1G复制至档首。 
p小写p代表贴至游标后(下)。 
P大写P代表贴至游标前(上)。

复制单个字符

首选进入正常模式(按ESC就行)
然后按v(指定粘贴板为"1v 引号不能少),进入visual方式,然后就可以移动方向键选中文本,然后按y,就拷贝完成,
如果你要从光标处开始复制 4 个字符,可以按 4yl (复制光标后的)("14yl)("110yl 后面10个字符),4yh(复制光标前的) ,就复制了4个字符到缓冲区中了,
按下来就可以用 p (指定粘贴板为"1v 引号不能少)命令随便粘贴了(1为指下粘贴板名)          

九、修改:先删除内容,再转换为输入模式

c: 用法同d命令

十、替换:

r:单字符替换

#r: 光标后#个字符全部替换

R: 替换模式

十一、撤消编辑操作 u

u:撤消前一次的编辑操作

#u: 直接撤消最近#次编辑操作

连续u命令可撤消此前的n次编辑操作

撤消最近一次撤消操作:Ctrl+r

十二、重复前一次编辑操作

.:编辑模式重复前一次编辑操作

十三、可视化模式

v: 按字符选取

V:按矩形选取

十四、查找

/PATTERN

?PATTERN

n 下一个

N 上一个

十五、查找并替换

在末行模式下使用s命令

 headline,footlines#PATTERN#string#g

 1,$:表示全文

 %:表示全文

该命令有很多种不同细节使用方法,可以实现复杂的功能。

:s/vivian/sky/ 替换当前行第一个 vivian 为 sky 
:s/vivian/sky/g 替换当前行所有 vivian 为 sky 
:s/vivian/sky/gc 替换当前行所有 vivian 为 sky,并且每次替换都要请求用户确认
:n,$s/vivian/sky/ 替换第 n 行开始到最后一行中每一行的第一个 vivian 为 sky 
:.,$s/vivian/sky/ 替换当前行开始到最后一行中每一行的第一个 vivian 为 sky 
:%s/vivian/sky/(等同于 :g/vivian/s//sky/) 替换每一行的第一个 vivian 为 sky 
:s#vivian/#sky/# 替换当前行第一个 vivian/ 为 sky/ 
:%s+/oradata/apras/+/user01/apras1+ (使用+来替换/):/oradata/apras/替换成/user01/apras1/ 

十六、使用vim编辑多个文件

vim FILE1 FILE2 FILE3

:next 切换至下一个文件

:prev 切换至前一个文件

:last 切换至最后一个文件

:first 切换至第一个文件

:q退出当前文件

:qa 全部退出

十七、分屏显示一个文件

Ctrl+w, s: 水平拆分窗口

Ctrl+w, v: 垂直拆分窗口

在窗口间切换光标:

Ctrl+w, ARROW(h,j,k,l或方向键) 

:qa 关闭所有窗口

十八、分窗口编辑多个文件

vim -o : 水平分割显示

vim -O : 垂直分割显示

十九、将当前文件中部分内容另存为另外一个文件

末行模式下使用w命令

:ADDR1,ADDR2w /path/to/somewhere

二十、将另外一个文件的内容填充在当前文件中

:r /path/to/somefile

附加到当前文件光标后

二十一、跟shell交互

:! COMMAND

二十二、高级话题

1、显示或取消显示行号

:set nu

:set nonu

mu = number

2、显示忽略或区分字符大小写

:set ic

:set noic

ic = ignorecase

3、设定自动缩进

:set ai

:set noai

ai = autoindent

4、查找到的文本高亮显示或取消

:set hlsearch

:set nohlsearch

5、语法高亮

:syntax on

:syntax off

注:特性当前有效,如果想要永久有效需修改配置文件
二十三、配置文件

/etc/vimrc    针对所有用户

~/.vimrc    针对当前用户

二十四、NerdTree
快捷键

ctrl +w +w    光标自动在左右侧窗口切换
ctrl +w +r    移动当前窗口的布局位置
o   展开左侧某个目录,再按一下就是合并目录
O   递归打开选中 结点下的所有目录
x   合拢选中结点的父目录
X   递归 合拢选中结点下的所有目录
go  在已有窗口中打开文件,但光标不跳到该窗口
t   中打开选中文件,并跳到新窗口
T   打开选中文件, 在原窗口 
P   跳到上级目录结点
p   跳到根目录结点
q   关闭 NerdTree 窗口
i   打开选中文件,上下分屏并跳到该窗口
gi  打开选中文件,上下分屏, 不跳到该窗口
s   打开选中文件,左右分屏并跳到该窗口
gs   打开选中文件,左右分屏,不跳到该窗口

! 执行当前文件
e Edit the current dif
双击 相当于 NERDTree-o
中键 对文件相当于 NERDTree-i,对目录相当于 NERDTree-e
D 删除当前书签
P 跳到根结点
p 跳到父结点
K 跳到当前目录下同级的第一个结点
J 跳到当前目录下同级的最后一个结点
k 跳到当前目录下同级的前一个结点
j 跳到当前目录下同级的后一个结点
C 将选中目录或选中文件的父目录设为根结点
u 将当前根结点的父目录设为根目录,并变成合拢原根结点
U 将当前根结点的父目录设为根目录,但保持展开原根结点
r 递归刷新选中目录
R 递归刷新根结点
m 显示文件系统菜单
cd 将 CWD 设为选中目录
I 切换是否显示隐藏文件
f 切换是否使用文件过滤器
F 切换是否显示文件
B 切换是否显示书签
q 关闭 NerdTree 窗口
? 切换是否显示 Quick Help
切换标签页
:tabnew [++opt选项] [+cmd] 文件 建立对指定文件新的tab
:tabc 关闭当前的 tab
:tabo 关闭所有其他的 tab
:tabs 查看所有打开的 tab
:tabp 前一个 tab
:tabn 后一个 tab
标准模式下:
gT 前一个 tab
gt 后一个 tab
MacVim 还可以借助快捷键来完成 tab 的关闭、切换
cmd+w 关闭当前的 tab
cmd+{ 前一个 tab
cmd+} 后一个 tab
NerdTree 在 .vimrc 中的常用配置
" 在 vim 启动的时候默认开启 NERDTree(autocmd 可以缩写为 au)
autocmd VimEnter * NERDTree
" 按下 F2 调出/隐藏 NERDTree
map :silent! NERDTreeToggle
" 将 NERDTree 的窗口设置在 vim 窗口的右侧(默认为左侧)
let NERDTreeWinPos="right"
" 当打开 NERDTree 窗口时,自动显示 Bookmarks
let NERDTreeShowBookmarks=1

本文转载自:http://www.cnblogs.com/usergaojie/p/4583796.html

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值