vim使用技巧和一些经验

vim使用有一些小技巧,虽然这些使用vim在日常操作中容易忽视,在操作时很容易忘了其实还可以这么干,但只要需要平时稍微留心掌握,使用vim熟练之后会显著提高综合使用vim编程的能力。

vim选择技巧

假设你有一个字符串,而光标键在第一个 o 的位置。

(map (+) ("foo")).
  • vi” → 会选择 foo.
  • va” → 会选择 “foo”.
  • vi) → 会选择 “foo”.
  • va) → 会选择(“foo”).
  • v2i) → 会选择 map (+) (“foo”)
  • v2a) → 会选择 (map (+) (“foo”))’”
  • 选中括号里的内容 v% 光标在一侧括号

gv 可以再次visually select上次的区域

vim命令技巧

用Vim的方式编辑Command-line(EX mode) 在Ex-mode输入命令时,有时需要调整,不能用Vim的方式来编辑, 这时候可以按「Ctrl-F」,切换进「Command-line window」,随意编辑,回车执行。

  :h c_CTRL-F

也可以使用Command-line补全,在Command-line输入命令时,想不起来命令全称了?Tab不好用?试试 Ctrl-D

  :h c-CTRL-D

宏命名技巧

Vim 宏与yank是共享寄存器的,最好有某种策略保证不会冲突。其实可以qwer四个寄存器用来录制临时用完即弃的宏(靠近q和@比较好按)。uiop四个键预留给yank (靠近”和y,p键。也就是除了常用的“和0号寄存器外,再预留四个寄存器来做复制粘贴,通常够用了),其他字母键用来记录固定宏(也就是关了vim下次打开还会接着用的常用宏)

Undo/Redo技巧

理论上在Vim中可以进行无限层级的Undo/Redo操作。同时Vim提供了一些高级的Undo/Redo操作,即earlier和later命令。例如我想回到四分钟以前的状态,只需执行命令:earlier 4m 。然后我又想前进到30秒后的状态,则执行命令:later 30s 。刚才的两个例子用时间点做参考,那么如果我想回到之前五次修改之前的状态,则执行命令:undo 5 .Vim以树形结构的方式组织undo list,可以用命令:undolist查看。所以从某种意义上讲,Vim不仅是一个文本编辑器,而且还是一台时光机(time machine)。

vim中文输入法切换技巧

在vimrc中进行设置,就不会为频繁切换输入法抓狂了,特别是在Vim下写代码和注释时或者完全采用vim写中文的时候。

    " Input method
       set iminsert=0
       set imsearch=0
       se imd
       au InsertEnter * se noimd
       au InsertLeave * se imd
       au FocusGained * se imd

但这种方式在搜索的时候也不能输入中文,但和使用 Ctrl+F 和I输入

随机文章 Random Posts