0
点赞
收藏
分享

微信扫一扫

vim_vim实用系列(配合现代IDE/编辑器来提高编辑效率(比如vscode+vim插件)

精简实用系列

  • 核心:

vim光标定位.

  • 在现代可视化做的普遍比较好的IDE中,如果辅以强大的定位的功能可以让IDE的编辑体验锦上添花
  • 基于此,我总结了实际使用中的一些最高频命令
  • vim特别灵活,可以通过不同的操作来达到一样的效果,以至于刚开始使用的时候不知道用哪一种方式来达到目的

准备工作:

  • 切换输入法:尽量使用纯英文编写内容(包括注释)
  • 进入标准模式(以便执行新指令)
  • 定位到需要编辑的行(或者合适的附近行)
  • 利用行相关的编辑技巧

行的编辑技巧(最实用的部分)

  • 如果屏幕中的某一样内容很多(很长的一行,这是后如果您还使用b(甚至是h)就不方便,而且nb/nh带有盲目性
  • 推荐使用查找:
  • 首先光标定位到改行(好处是如果该文件内容过多,那么不容易在预览的时候页面跑到其他偏远地方;此外,可以减少查找后的修正(N/n)
  • :line
  • 向前查找
  • :?chars
  • 上一处
  • N

  • 向后查找
  • :/chars
  • 下一处
  • n


光标移动之行首/行尾

  • 非空字符行首
    (比绝对行首更实用些)(但是如果只是注释改行,那么可以考虑实用编辑器(IDE)的注释快捷键即可(在改行的任何位置既可以注释掉改行代码)
  • ^(即,shift+6)
  • 行尾:
  • 0(单独一个数字0,而且不要按shift,否则变成’)’
    其他常用的
  • 在某行行末添加内容(大写)
  • A
  • 在行首插入内容(大写)
  • I
  • 当然还包括其他的插入修改操作:
  • 光标前插入模式(insert)
  • i
  • 光标后插入模式(append)
  • a

  • 行间插入模式:
  • 向上插入行并开始编辑
  • O
  • 向下插入行并开始编辑
  • o

  • 以单词为单位进行修改/删除
  • 修改
  • lbce

删除(delete a word)

  • daw

修改单词

修改单词的部分字符

  • 向前修改
  • cb
  • 向后修改
  • ce

字符删除:

  • 向前删除(光标前)
  • X
  • backSpace
  • 向后删除(从光标当前开始计)
  • x
  • delete

搜索替换

vim默认

  • 全局替换
  • :%s/old/new/g
  • 行区间替换:
  • :n1,n2s/old/new/g
  • 光标所在行内替换:
  • : s/old/new/g
  • 忽略大小写开关

在任何地方键入​​\c​​,则该搜索表达式是忽略大小写的

删除单词通用技巧:

  • 以下两种方法,可以在您的光标处于单词中的任意位置时都删除一整个单词
  • lbce(一般来讲,记住这一个就够用啦,especially when you are editing
    english segments)
  • daw
  • bdw

删除光标前的单词部分的字符

  • db
    (方块光标所在的字符会被保留)


删除光标处及以后的单词部分的字符(包括附带的空格一并删掉)

  • dw


删除到单词最后一个字符(空格会被保留)

  • de


删除指定行间区间的内容

基于​​d​​命令的光标定位删除操作

例如删除第​​r1​​​行至​​r2​​行之间的内容:

  • 将光标定位到第​​r1​​行
  • 键入​​d​​命令键
  • 将光标定位到第​​r2​​行
  • 删除完毕

删除任意区间的字符(特别是无规律字符序列/长序列)

基于​​visual​​模式下的可视化选择删除操作

  • 使用v模式:
  • 明确你想要删除的区间,并且将光标移动到区间的起点start
  • 移动光标一般使用​​/​​​(或者向前搜索​​?​​)控制
  • normal模式下键入​​v​​键
  • 操作光标移动区间的结尾end,即选中需要被删除的内容
  • 移动光标一般使用`/`(或者向前搜索​​?​​)控制
  • 键入​​d​​键执行删除

删除方法的小结

在执行删除之前,明确区间,然后将光标定位到被删除内容的起始位置(或者结束位置)
然后根据需要进入​​​d​​​命令或者​​v​​​(更准确的说是一种模式)
然后移动光标到另一个区间边界处(如果是删除整行的,移动到改行即可)
这样前者就会删除到若干行,后者需要再按下​​​d​​​才会删除
总之

  • 都需要移动光标(只是精度更具需求有所不同,删除若干行的精度要求低,删除指定区间的,精度要求较高(当然,前者是后者的一种特例))
  • 都需要实用到​​d​​命令(只是时机不同);

note!

虽然​​:/​​​和​​:?​​​一般情况下很管用,但是在重复字符较多的情况下不容易定位(需要按较多的N/n来修正,不过和不是无解,您可以在利用​​:?​​​和​​:\​​多打几个字符(比如目标位置的前一个字符或者后一个字符甚至几个字符),这样就可以较好的区分开来,使得定位更加准确)

换行符的删除

某些时候,您可能需要删除换行符,vim提供了方便的换行符删除操作,使得这些行被拼接为同一行
删除当前行的换行符(join)大写的字幕:​​​J​​​ 连续删除n个换行符以拼接n行内容:​​nJ​

额外的总结

移动光标

单位级

  • ​h​​ 向左一字符
  • ​j​​ 下一行
  • ​k​​ 上一行
  • ​l​​ 向右一字符

单词级

跨单词:

  • ​w​​​ or​​W​​ 向右移动到下一单词开头

本单词内:

  • ​e​​​ or​​E​​ 向右移动到单词结尾(但是位于单词结束字符,则会跨单词移动到后一个单词的结尾字符,您可以理解为,一旦按下e,光标一定不会呆在原地,且要向后移动)
  • ​b​​​ or​​B​​ 向左移动到单词开头(但是位于单词开始字符,则会跨单词移动到前一个单词的开始字符,您可以理解为,一旦按下b,光标一定不会呆在原地,且要向前移动)

vim实用系列

块级

  • ​gg​​ 到文档第一行
  • ​G​​ 到文档最后一行
  • ​0​​ 到行首(第 1 列)
  • ​^​​ 到第一个非空白字符
  • ​$​​ 到行尾

相对屏幕的光标移动

  • ​H​​ 移动到屏幕顶端
  • ​M​​ 移动到屏幕中间
  • ​L​​ 移动到屏幕底部

相对屏幕的内容滚动

  • ​Ctrl-d​​ 向下移动半页
  • ​Ctrl-u​​ 向上移动半页
  • ​Ctrl-f​​ 向下移动一页
  • ​Ctrl-b​​ 向上移动一页

按行跳转光标

  • ​:<N>​​​ or​​<N>gg或<N>G​​ 跳转到第 N 行
  • ​:+<N>​​​ or​​<N>j​​ 向下跳 N 行
  • ​:-<N>​​​ or​​<N>k​​ 向上跳 N 行


举报

相关推荐

vim编辑器

Vim编辑器

vi/vim编辑器

vim程序编辑器

linux编辑器vim

四、vim编辑器

0 条评论