神之编辑器Vim 技巧 ( 永久显式行号 Tab补全函数 在多个文件中查找某个关键字并定位)

神之编辑器Vim 技巧

  • 命令模式操作:
i:在当前光标插入
o:在下一行插入
O:在上一行插入
a:在光标下一个字母插入
A;从光标所在行的最后一个字符处开始插入
gg:光标到第一行行首
G:光标到最后一行行首

v:按v之后,光标选择复制的范围,按y即复制
p:黏贴

整页翻页 ctrl-f ctrl-b
f就是forword b就是backward

翻半页
ctrl-d ctlr-u
d=down u=up
  • 底行模式操作:
:set nu #显示行号
:set nonu #取消行号
:4      #光标跳到第四行
:/yyyy  #光标跳到yyyy所在位置
:%s/aa/yy/g #将字符串aa替换成yy
:2,8s/yyyy/qqqq/g  #从第2行到第8行,将yyyy替换成qqqq
:q!   #强制离开不保存
:wq!  #强制写入并保存
:!ls /home   #暂时离开,执行ls /home命令
:w newfile #另存为
  • 1.复制

    • 单行复制
      【yy】复制光标所在的那一行
      在命令模式下,将光标移动到将要复制的行处,按yy进行复制;
    • 多行复制
      【nyy】复制光标所在的向下n行
      在命令模式下,将光标移动到将要复制的首行处,按nyy复制n行;其中n为1、2、3……
    • 选择复制范围
      v:按v之后,光标选择复制的范围,按y即复制
      p:黏贴
  • 2.粘贴

    在命令模式下,将光标移动到将要粘贴的行处,按“p”进行粘贴

    【p,P】,p为将已经复制的数据在光标下一行粘贴;P为将已经复制的数据在光标上一行粘贴

  • 3.删除

    x:删除当前字符

    dd: 删除一行
    ndd:删除以当前行开始的后n行

    dw:删除一个单词/光标之后的单词剩余部分
    ndw删除n行,保留当期光标之前的字符

  • 4.查找

    【/word】在文件中查找内容为word的字符串(向下查找)
    【?word】在文件中查找内容为word的字符串(向上查找)
    【[n]】表示重复查找动作,即查找下一个
    【[N]】反向查找下一个

    搜索后,我们打开别的文件,发现也被高亮了,怎么关闭高亮?

    命令模式下,输入:nohlsearch 也可以:set nohlsearch; 当然,可以简写,noh或者set noh。

  • 5.设置行号
    :set nu,并按回车键,完成后即显示行号
    永久显式行号:
    sudo vi /etc/vim/vimrc,并在58行处加入set nu
    在这里插入图片描述

  • 6.光标跳到指定行

    66+G:跳转到第66行(例如66+shift+g。跳转到66行)
    :66: 光标跳到第66行

    gg:跳到文件第一行

    G:跳到文件最后一行

    :/yyyy#光标跳到yyyy所在位置

  • 7.撤销上一步操作

【u】:撤消上一个操作
【[Ctrl] + r】:多次撤消
【.】:这是小数点键,重复上一个操作

  • 8、进入替换模式(2个命令)
    【r】只会替换光标所在的那一个字符一次
    【R】会一直替换光标所在字符,直到按下[ESC]键为止
    【[ESC]】退出编辑模式回到一般模式

  • 9.多窗口功能
    【:sp [filename]】打开一个新窗口,显示新文件,若只输入:sp,则两窗口显示同一个文件
    【[Ctrl] + w + j】光标移动到下方窗口
    【[Ctrl] + w + k】光标移动到上方窗口
    【[Ctrl] + w + q】离开当前窗口

  • 10.缩进

    • 批量缩进

      “2,9>”: 将2至9行批量缩进一个tab值
      “2,9<”: 将2至9行批量缩回来一个tab值

  • 11.Tab补全函数
    打开连接下载插件:
    https://www.vim.org/scripts/script.php?script_id=1643

install details
1. Download supertab.vmb to any directory.
2. Open the file in vim ($ vim supertab.vmb).
3. Source the file (:so %).

在这里插入图片描述

  • 12 多窗口操作
:sp [filename]  #其中filename为需要打开的新文件名
ctrl + w + 上下方向键     #可以上下切换窗口光标在不同窗口编辑
  • 13 在多个文件中 查找某个关键字并定位
 :vimgrep /匹配模式/[g][j] 要搜索的文件/范围 

g 和 j 是两个可选的标志位,g表示是否把每一行的多个匹配结果都加入。j表示是否搜索完后定位到第一个匹配位置。
要搜索的文件 可以是具体的文件路径,也可以是带通配符的路径比如 .as **/.as ,**表示递归所有子目录。 要搜索的文件和或搜索范围都可 以写多个,用空格分开。

例子:

:vimgrep /\<flash\>/ **/*.as 搜索当前目录以及所有子目录内as文件中的 "flash"
:vimgrep /an error/ *.c 就是在所有的.c文件中搜索an error。
:vimgrep/an error/* 意思是查找当前目录下的文件中的an error,不包括子目录

Quickfix 跳转
当某个关键字存在于多个文件时

:cw #打开 quickfix 列表窗口

:ccl #关闭 quickfix 列表窗口

eg:
add关键字存在于两个文件add.cpp和sub.cpp
在这里插入图片描述

在这里插入图片描述
通过Ctrl +w+上下方向键切换窗口,选择相应的文件进入,按上下方向键即可选择。

在这里插入图片描述

:cfirst  #跳转到 quickfix列表的第一项
:cnext   #前一项的匹配处
:cprev  #后一项的匹配处
:clast   #最后项的匹配处
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值