Category: Vim

  • vim window横竖切换

    当 vim 将屏分割开之后,有时想将当前 window 横竖切换

    按 ctrl + w + ( h j k l ) 定位到需要复制的 window

    当前 window 扩展到最宽

    ctrl + w + K 

    当前 window 扩展到最高

    ctrl + w + H 

    参考:
    https://stackoverflow.com/a/1269631

  • vim macro

    vim 自动处理文字的时候,要用到 macro ,设置 macro 名 ,使用 @ 调用 macro 名实现一堆操作。

    在 normal 模式下, 按 q 再加上 a (或其他字母) 开始记录。

    比如进行如下操作,在一行尾部加一个分号跳到下一行

    $ #跳到行尾
    a #追加模式
    ; #写一个分号
    ESC #回到 normal 模式
    j #跳到下一行
    

    按 q 结束 macro

    现在找到其他行,想进行操作时,按 @a 在当前行执行一次 macro 的内容。
    按 10@a 执行 10 次 macro 的内容
    按 @@ 执行上一次 macro

  • vim marks and jumps

    对文档进行光标位置进行标记,记录在 a 里

    ma

    跳到 a 标记所在位置

     `a 

    跳到 a 标记行首

     'a 

    大写字母为全局 mark, 小写字母只在本文件中生效
    显示所有 marks

    :marks

    跳到最后一次修改的位置

    `. 

    跳到最后一次修改的行首

    '.

    跳到上次关闭会话时的位置

    '"

    跳到上一次 jump 之前的位置

    ``

    jumps 显示跳转轨迹,同时显示有没有关联 marks

    Ctrl-o 从 jump 0 位置向上跳

    n + Ctrl-o 从 jump 0 位置向上跳 n 个

    Ctrl-i 从 jump 0 位置向下跳

    n + Ctrl-i 从 jump 0 位置向下跳 n 个

    https://medium.com/@kadek/understanding-vims-jump-list-7e1bfc72cdf0

  • vim buffer 查看及操作

    vim 编辑的时候都是将文件放到 buffer 里

    同时编辑多个文件

    vim file1 file2

    查看 buffer,显示正在编辑的文件及行数

    :ls
      1 #    "file1"                        line 1
      2 %a   "file2"                        line 1
    

    切到下一个文件

    :bn

    切到上一个文件

    :bp
  • vim cd 和 lcd

    cd 意思为 global current directory
    lcd 意思为 local current directory

    在打开的 vim 进程中,使用 :cd 可以指定全局的目录,这样方便的使用 :edit , :Explore 来查找编辑文件。

    但是在日常使用多窗口和多 tab 时是去其他目录查阅资料,这时使用全局目录切来切去很麻烦,可使用 lcd 对当前窗口指定一个工作目录。

    查看当前目录使用 :pwd 命令

    更多

    :help cd
    :help lcd
    
  • vim自动换行

    配置每行超过 n 个字加上换行符

    :set textwidth=n

    设置自动换行

    :set wrap

    设置不自动换行

    :set nowrap