Vim常用命令

保存

:wq

shift zz (按住shift,按z是大写的Z)


:r  文件路径文件名    (导入文件内容到光标下一行)


文件命令

同时打开多个文件  
vim file1 file2 file3 

在vim窗口下打开一个新文件
:open file

在新窗口中打开文件
:split file

切换到下一个文件
:bn

切换到上一个文件
:bp

查看当前打开的文件列表,当前正在编辑的文件会用 [ ] 标注
:args


插入命令

i  在光标前插入
a  在光标后插入

I  在光标行首插入,本行第一个字符前
A  在光标行末尾插入

o (小写)在光标下方新建行
O (大写)在光标上方新建行

u  撤销


查找命令

/file 查找file,按 n 键查找下一个,按 N 键查找上一个。

:set ignorecase    或  :set ic         忽略字母大小写的查找
:set noignorecase  或  :set noic       不忽略字母大小写的查找

:set hlsearch              高亮显示搜索结果,高亮显示所有查找内容
:set nohlsearch            关闭高亮显示,下次查找不开启
:nohlsearch                关闭本次查找的高亮显示,下次开启

:set nu   或者 :set number  设置行数 

: set nonu  取消行号


替换

  shif + ~    (ESC模式下)光标所在处的字符进行大小写互换


:%s/old/new/g    全文替换字符串,把old替换成new

: 2,10s/old/new/g   替换2到10行字符串


如果要确认 选择c 不确认是g

:2,10s/old/new/c


:32, $s/name//        替换32行的第一个 name 为空


移动

h     左移一个字符
l     右移一个字符 (此命令少用,一般用 w 代替)

k     上移一个字符
j     下移一个字符
(10h,向左移动10个字符;   8j,向下移动8行

w     向前(右)移动一个单词(2w,向前移动2个单词),光标停在单词首部。
b     向后(左)移动一个单词 (2b,……)
e     同 w   但是光标停在单词尾部
ge    同 b   光标停在单词尾部

gg    移动到本文件头部,最顶端。
G     移动到文件尾部

nG    到n行

:n   到n行

0 (零)     移动到本行第一个字符上(含空白字符)
^            移动到本行第一个非空白字符上
$            移动到行尾 (3$ 移动到下面三行的行尾)

跳到指定行,冒号+行号,回车,比如跳到240行就是 :240回车。另一个方法是行号+G,比如230G跳到230行。

Ctrl + e 向下滚动一行

Ctrl + y 向上滚动一行

Ctrl + d 向下滚动半屏

Ctrl + u 向上滚动半屏

Ctrl + f 向下滚动一屏

Ctrl + b 向上滚动一屏

 


撤销和重做

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


删除 


x   删除当前字符(也可以是 dl )(3x 删除当前光标开始向后三个字符) 
X   删除当前字符的前一个字符(也可以是 dh)

dd  删除当前行
10d 删除当前行开始的10行 
dj  删除上一行
dk  删除下一行  

jdG(j  d  shift + g)删除当前行之后所有行(不包括当前行) 
kdgg  删除当前行之前所有行(不包括当前行)

d$  删除当前字符之后的所有字符(本行)
D   删除当前字符至行尾。D=d$

J (shift + j)  删除两行之间的空行,实际上是合并两行。

:1,10d  删除1-10行

:11,$d  删除11行及以后所有的行

:1,$d   删除所有行

:1,10g/^$/d         删除1到10之间的空行

 


复制和黏贴剪切

yy   或 Y   拷贝当前行

nyy  或 nY  拷贝当前后开始的n行,比如2yy拷贝当前行及其下一行。
p           在当前光标行后粘贴,如果之前使用了yy命令来复制一行,那么就在当前行的下一行粘贴。 

P   大p,当前光标行之上复制
shift+p 在当前行前粘贴 

dd   按p剪切 dd也是删除命令



定义快捷键


:map  ^p  I#<ESC>          ctrl+p     (  ^是按ctrl+v出来的,大写的i是在行首插入,行首插入#号,然后ESC键返回命令模式)

:map ^b 0x                       ctrl+b         (删除行首的字符,x表示删除光标所在的字符)

取消  :unmap ^p



:2,7s/^/#/g              在2到7行的行首加上#号   ^ 表示行首

:2,7s/#//g                把行首的#号去掉      //无内容表示替换为空,但是如果后面也有#号也会去掉

:2,7s/^#//g              只把行首的#号去掉


如果行首需要加上 // 两个斜杠,需要用转义符\

:2,7s/^/\/\//g 


替换

:ab  sb   mabi@163.com    输入sb 回车就会变成mabi@163.com

取消  :unab  mabi@163.com



永久配置以上

如果是个人用户在用户家目录

自建一个 .vimrc的文件

set nu 

map ^b I#<ESC>

就可以了


全局用户在 /etc/vimrc 尽量别操作



多行缩进:

按v进入visual状态,选择多行,用>或<缩进或缩出 
在命令状态下对当前行用== (连按=两次), 或对多行用n==(n是自然数)表示自动缩进从当前行起的下面n行。

你可以试试把代码缩进任意打乱再用n==排版,相当于一般IDE里的code format。使用gg=G可对整篇代码进行排版。


visual模式有三种:

默认的visual模式,按下 v 就可以进入

visual line模式,V 可以进入

visual block模式,Ctrl-V 进入



查看编码

:set fileencoding

:set fileencoding=utf-8



一些快捷键

<ESC模式>

ctrl-a 可以将光标所在处的数字加1,负数和多位数都在支持范围内

ctrl-x   有加1就会有减1





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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值