Vim命令

这篇并不是Vim入门篇命令,只用来记录本人容易忘记的命令,入门者请另寻佳文。

1 替换命令

替换命令中的s即substitude,from和to可以为任何字符串,from还可以为正则表达式。
替换命令语法:

:[range]s/from/to/[flags]

range的表达方式:

不写range         # 默认光标所在行
.                # 光标所在行
1                # 第一行
$                # 最后一行
n                # 第n行,n为正整数
.+1              # 当前光标所在行的下一行
$-1              # 倒数第二行
n,m              # 第n~m行,n和m为正整数且n<=m
%                # 所有行

flags的表达方式:

不写flag          # 只对指定范围内的第一个匹配项进行替换
g                # 对指定范围的所有匹配项进行替换
c                # 在替换前请求用户确认
e                # 忽略执行过程中的错误
# 各个flag可以组合使用

下面对某些常见情况下的替换命令进行总结:

  1. 替换当前行中的内容
    :s/from/to/   # 将当前行第一个from替换成to,如果有多个from,只替换第一个
    :s/from/to/g  # 将当前行中的所有from都替换为to
    :s/from/to/gc # 将当前航中的所有from都替换成to,但每次替换都会询问用户确认此操作
    
  2. 替换某一行的内容
    :.s/from/to/g  # 将当前行中的所有from都替换为to,等同于:s/from/to/g
    :10s/from/to/g # 将第10行中的所有from都替换为to
    :$s/from/to/g  # 将最后一行的所有from都替换为to
    
  3. 替换某些行的内容
    :10,20s/from/to/g # 将第10行到第20行的所有from都替换为to
    :1,$s/from/to/g   # 将第1行到最后一行的所有from都替换为to
    :1,.s/from/to/g   # 将第1行到当前行的所有from都替换为to
    :.,$s/from/to/g   # 将当前行到最后一行的所有from都替换为to
    
  4. 替换所有行的内容
    :%s/from/to/g # 将文本中所有的from都替换为to,相当于:1,$s/from/to/g
    

2 NERD Commenter插件的注释快捷键

,cc   # 注释当前行或visual mode所选区域
,cu   # 取消注释
,c空格 # 注释和反注释(智能判断)
,ca   # 切换注释方式,如C++的//和/* */
,cs   # 以美化的方式注释多行
,cA   # 在行尾加注释符并进入insert mode
n,cc  # 注释当前行向下n行
n,cs  # 以美化的方式注释当前行向下n行

3 分屏命令

  1. 启动vim时分屏
    vim -On file1 file2 ...   # 使用大写的O参数垂直分屏打开多个文件
    vim -on file1 file2 ...   # 使用小写的o参数水平分屏打开多个文件
    # n为正整数,表示分成几个屏,可以省略,省略的情况默认按后面的文件数来决定分几个屏
    
  2. 启动vim后在Norm mode下分屏
    :new或Ctrl+w,n    # 新建文件并分屏(:new后可接文件名,不加的话最后:w时后面跟文件名也行)
    :split或Ctrl+w,s  # 水平分屏
    :vsplit或Ctrl+w,v # 垂直分屏
    
  3. 关闭分屏
    :only或者Ctrl+w,o  # 取消去她分屏,只保留当前分屏
    Ctrl+w,c          # 关闭当前分屏(Ctrl+w,q好像也是这样,暂时没有发现两者的区别)
    
  4. 切换分配
    Ctrl+w,w  # 切换到下一分屏
    Ctrl+w,p  # 切换到前一分屏
    
    Ctrl+w,h  # 向左切换分屏
    Ctrl+w,j  # 向下切换分屏
    Ctrl+w,k  # 向上切换分屏
    Ctrl+w,l  # 向右切换分屏
    
  5. 分屏并打开一个已存在文件
    :vs path/filename # 在新的垂直分屏中打开文件
    :sv path/filename # 在新的水平分屏中打开文件
    
  6. 移动分屏
    Ctrl+w,H  # 向左移动分屏
    Ctrl+w,J  # 向下移动分屏
    Ctrl+w,K  # 向上移动分屏
    Ctrl+w,L  # 向右移动分屏
    

4 分页命令

  1. 打开新分页并编辑新文件(可选的)。如果未指定文件,则只打开新分页,并附上空的缓冲区。
    :tabnew filename 
    
  2. 关闭当前分页
    :tabclose
    
  3. 关闭其他所有的分页。如果其他分页中有修改过的文件,则不会移除该分页,除非设置了autowrite选项。此时,所有修改过的文件都在分页关闭前写入磁盘。
    :tabonly 
    

5 vim和系统之间复制粘贴

  1. vim copy到系统 "+y
  2. 系统copy到vim "+p

6 MarkDown相关命令

  1. vim-markdown-toc插件生成目录相关命令
    :GenTocMarked 在光标处生成目录
    :UpdateToc 更新目录
    
  2. markdown-preview.vim插件打开浏览器中实时预览功能
    :MarkdownPreview
    

7 代码折叠

zc 折叠代码
zo 展开代码
zC 对所有折叠点的代码折叠
zO 对所有折叠点的代码展开

8 vim-surround

普通模式

命令说明 + 示例
ds删除括号
ds ""Hello world!" =>
Hello world!
cs替换括号
cs "("Hello world!" =>
(Hello world!)
cS替换括号,括号内文本做新一行
cS "{"Hello world!" =>
{
    Hello world!
}
ys添加括号(配合vim光标移动)
ys w [Hello world! =>
[Hello] world!
ys w <em EnterHello world! =>
<em>Hello<em> world!
yS添加括号,括号内文本做新一行
yS w [Hello world! =>
[
     Hello
] world!
yss整行括起来
yss (Hello world! =>
( Hello world! )
ySS整行括起来,括号内文本做新一行
ySS {Hello world! =>
{
   Hello world!
}
ySS <div EnterHello world! =>
<div>
   Hello world!
<div>
ySs与ySs功能相同

可视模式

命令说明 + 示例
S选中的括起来
选中world: S(Hello world! =>
Hello (world)!
gS选中的括起来,括号内文本做新一行
选中world: gS{Hello world! =>
Hello {
   world
}!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值