vim基本常用操作

Vim模式

正常模式(按Esc或Ctrl-[进入) 左下角显示文件名或为空
插入模式(按i ,I, a, A, o或者O进入) 左下角显示–INSERT–
可视模式(按v,V或者Ctrl-v进入) 左下角显示–VISUAL–
命令模式(按:进入)

打开文件

打开单个文件
vim file    
 同时打开多个文件
vim file1 file2…

在vim窗口中打开一个新文件
:e [file]

放弃修改,打开一个新文件

:e!  [file]

放弃修改,重新打开文件
:e!

打开远程文件,比如ftp或者共享文件
:e ftp://xxx.xxx.xxx.xxx/filefile1
:e \sharedrive\filefile1

以只读形式打开文件,但是仍然可以使用 :wq! 写入
vim -R file

强制性关闭修改功能,无法使用 :wq! 写入
vim -M file

移动命令

h   左移一个字符
l   右移一个字符
k   上移一行

j   下移一行

10h  左移10个字符
10l  右移10个字符
10k  上移10行
10j  下移10行

w  向前移动一个单词,光标停在单词首部,这里的单词是以字母、数字、下划线或点组成

W  向前移动一个单词,光标停在单词首部,这里的单词为非空白字符

e,同w,只不过是光标停在单词尾部

b  向后移动一个单词,光标停在单词首部,这里的单词是以字母、数字、下划线或点组成

B  向后移动一个单词,光标停在单词首部,这里的单词为非空白字符

fx    找到光标后第一个为x的字符
3fx  找到光标后第三个为x的字符
F  同f,反向查找

^   移动到本行第一个非空白字符上
0   移动到本行第一个字符上(可以是空格)

$   移动到行尾 
3$  移动到下面3行的行尾

:10    跳到第10行
10G    跳到第10行

(   移动到句首
)   移动到句尾

句是以空白行为分隔符的段落

gg  移动到文件头

G   移动到文件尾

Ctrl - e 向下滚动一行
Ctrl - y 向上滚动一行

Ctrl - d 向下滚动半屏
Ctrl - u 向上滚动半屏

Ctrl - f 向下滚动一屏
Ctrl - b 向上滚动一屏

zz命令会把当前行置为屏幕正中央,
zt命令会把当前行置于屏幕顶端

zb则把当前行置于屏幕底端.

标记跳转:

mx ,将光标处标记为 x,使用 'x 进行跳转

:marks 可以查看所有的标记
:delm!可以删除所有的标记

:delm x 删除x标记

Ctrl-o 即可返回上一次的位置

插入命令

i 在当前位置生前插入
I 在当前行首插入

a 在当前位置后插入
A 在当前行尾插入

o 在当前行之后插入一行
O 在当前行之前插入一行

查找命令

/text  查找text,按n健查找下一个,按N健查找前一个。
?text  查找text,反向查找,按n健查找下一个,按N健查找前一个。
/和?后指出正则表达式,如:

/\w 查找单词

/\d 查找数字

*        向后(下)寻找游标所在处的单词
#        向前(上)寻找游标所在处的单词

:set ignorecase  忽略大小写的查找
:set noignorecase  不忽略大小写的查找

替换命令

~  反转游标字母大小写

r<字母>           将当前字符替换为所写字母
R<字母><字母>…  连续替换字母

cc    替换整行(就是删除当前行,并在下一行插入)
cw    替换一个单词(就是删除一个单词,就进入插入模式),前提是游标处于单词第一个字母(可用b定位)
C     (大写C)替换至行尾(和D有所区别,D是删除(剪切)至行尾,C是删除至行位并进入插入模式)

?/old/new/    用new替换old,替换当前行的第一个匹配
?/old/new/g   用new替换old,替换当前行的所有匹配

:%s/old/new/   用new替换old,替换所有行的第一个匹配
:%s/old/new/g  用new替换old,替换整个文件的所有匹配

撤销与重做

u 撤销(Undo)
U 撤销对整行的操作
Ctrl - r 重做(Redo),即撤销的撤销。

删除命令

x   删除当前字符
3x  删除当前字符3次

X   删除当前字符的前一个字符。
3X  删除当前光标向前三个字符

D   删除当前字符至行尾,等于d$
d$  删除当前字符至行尾
d^  删除当前字符之前至行首

dw  删除当前字符到单词尾
daw 删除当前字符所在单词

dd  删除当前行
dj  删除下一行
dk  删除上一行

dgg  删除当前行至文档首部
dG   删除当前行至文档尾部

10d     删除当前行开始的10行。
:1,10d  删除1-10行
:11,$d  删除11行及以后所有的行
:1,$d   删除所有行
J     删除两行之间的空行,实际上是合并两行。

复制粘贴

普通模式中使用y复制

yy   复制游标所在的整行(3yy表示复制3行)

y^   复制至行首,或y0。不含光标所在处字符。
y$   复制至行尾。含光标所在处字符。

yw   复制一个单词。
y2w  复制两个单词。

yG   复制至文本末。
ygg  复制至文本开头。

p(小写):代表粘贴至光标后(下边,右边)
P(大写):代表粘贴至光标前(上边,左边)

退出保存

:wq 保存并退出

:q! 强制退出并忽略所有更改

:e! 放弃所有修改,并打开原来文件。

:sav(eas) new_file  把当前内容写到新文件并退出原文件,当前编辑文件为新文件
,且这次的编辑不会保存到原文件

:f(ile) new_file    跟saveas的区别是不保存到新文件,需要手动保存

:w new_file 把当前内容写到新文件,当前编辑文件为原文件

排版功能

缩进

:set shiftwidth?   查看缩进值
:set shiftwidth=4  设置缩进值为4
:set tabstop=4
:set softtabstop=4
:set expandtab

>>   向右缩进
<<   取消缩进

排版

:ce   居中
:le   靠左
:ri   靠右

注释命令

多行注释

进入命令行模式,按ctrl - v进入 visual block模式,然后按j, 或者k选中多行,把需要注释的行标记起来

按大写字母I,再插入注释符,例如#

按esc键就会全部注释了

取消多行注释

进入命令行模式,按ctrl - v进入 visual block模式,按字母l横向选中列的个数,例如 // 需要选中2列

按字母j,或者k选中注释符号

按d键就可全部删除注释

用替换命令添加/删除注释

:1,10 s/^/#/g 注释第1-10行
:1,10 s/^#//g 删除1-10行的注释
:1,$ s/^/#/g 注释整个文档
:%s/^/#/g 注释整个文档
:1,$ s/^#//g 删除整个文档的注释
:%s/^#//g 删除整个文档的注释

区域选择

要进行区域选择,要先进入可视模式

v   以字符为单位,上下左右选择
V   以行为单位,上下选择
Ctrl-v 块模式,起点到终点的一块长方形
选择后可进行操作
d   剪切/删除
y   复制
v后可以加范围,如:
vG 选择当前至文件末尾

ggvG   选择全文

v2 选择2行

窗口控制

新建窗口

打开两个文件分属两个窗口
vim -o file1 file2

假设现在已经打开了file1

:sp file2   开启一个横向的窗口,编辑file2
:vsp file2  开启一个竖向的窗口,编辑file2

需要注意:内容同步,但是游标位置是独立的

Ctrl-w s    将当前窗口分成水平窗口
Ctrl-w v    将当前窗口分成竖直窗口

Ctrl-w q    等同:q 结束分割出来的视窗。
Ctrl-w q!   等同:q! 结束分割出来的视窗。
Ctrl-w o    打开一个视窗并且隐藏之前的所有视窗

窗口切换:

Ctrl-w h    切换到左边窗口
Ctrl-w l    切换到右边窗口

Ctrl-w j    切换到下边窗口
Ctrl-w k    切换到上边窗口

特别说明:全屏模式下
:n    切换下一个窗口
:N    切换上一个窗口
:bp   切换上一个窗口

Ctrl-w J   将当前视窗移至最下面
Ctrl-w K   将当前视窗移最上面

Ctrl-w H   将当前视窗移至最左边
Ctrl-w L   将当前视窗移至最右边

Ctrl-ww    按顺序切换窗口

调整尺寸

Ctrl-w +   增加窗口高度
Ctrl-w -   减少窗口高度

:only    关闭所有窗口,只保留当前窗口(前提:其他窗口内容有改变的话都要先保存)
:only!   关闭所有窗口,只保留当前窗口

:qall 放弃所有操作并退出
:wall 保存所有,
:wqall 保存所有并退出。

文档加密

vim -x file_name

然后输入密码:
确认密码:

如果不修改内容也要保存,不然密码设定不会生效。

录制宏

按q键加任意字母开始录制,再按q键结束录制(这意味着vim中的宏不可嵌套),使用的时候@加宏名,比如qx…q录制名为x的宏,@x使用这个宏。

执行命令

:!command

比如列出当前目录下文件
:!ls

:suspend或Ctrl - Z 挂起vim,回到shell,按fg可以返回vim。

帮助命令

在Unix/Linux系统上
$ vimtutor

普通模式下

按F1

命令行模式下
:help     显示整个帮助
:help i 显示i的帮助

配置命令

显示当前设定

:set显示所有修改过的配置
:set all 显示所有的设定值
:set option? 显示option的设定值
:set nooption 取消当期设定值
:ver   显示vim的所有信息(包括版本和参数等)

:set background=dark或light,设置背景风格
:set number   显示行号
:set shiftwidth=4  设置缩进值为4
:set tabstop=8   设置tab键8列宽
:set softtabstop=4   设置输入tab时占4列宽

以上两项设置,按一次tab用4个空格占用4列宽,再按一次tab占用8列宽并转换为一个tab而不是8个空格,除非

:set expandtab 把tab占用的列宽转换为空格

:set autoindent   设置自动缩进
:set autowrite    设置自动存档,默认未打开
:set backup 设置自动备份,默认未打开

:set cindent(cin) 设置C语言风格缩进

:set ff=unix   修改文件dos文件为unix

:set ignorecase  忽略大小写的查找
:set noignorecase  不忽略大小写的查找

:set paste   insert模式下,如果粘贴过来的东西格式乱了,粘贴前请使用这个命令,粘贴后:set
nopaste恢复原来设置

:set ruler  设置右下角显示状态
:scriptnames 查看vim脚本文件的位置,比如.vimrc文件,语法文件及plugin等。

:set listchars=tab:>-,trail:-  tab 显示为>-,行尾空格显示为-

:syntax enable 执行$VIMRUNTIME/syntax/syntax.vim并保持当前配色

:syntax on 执行$VIMRUNTIME/syntax/syntax.vim不保持当前配色

:syntax off 执行$VIMRUNTIME/syntax/nosyntax.vim

:syntax clear  清除已定义的语法规则

:syntax        列出已经定义的语法项

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值