Category: Vim

  • vim光标移动

    将光标移到指定列,输入 数字+| ,例如 77|

    向右移动指定数量字符,输入 数字+l(小写L) ,例如 5l
    向左移动指定数量字符,输入 数字+h(小写H) ,例如 8h

    移动光标到上一个单词首字母,输入 b
    移动光标到下一个单词首字母,输入 w

    移动光标到行首,按0
    移动光标到行尾,按$

    移动光标到指定行行首,例如12行行首:12G 或 :12回车
    首行行首:gg
    最后一行行首:G

    向下移两行: 2+或2j
    向上移两行: 2-或2k

    移动到上一句:)
    移动到下一句:(

    移动到上一段:{
    移动到下一段:}

    在(),{},[],<>中移动光标,当光标在上述四种之内时,按%跳到开始,再按%跳到结尾。在编辑配置文件的时候非常有用。

    在屏幕中移动光标:
    移动到屏幕的最上端:H
    移动到距屏幕最上x行: xH
    移动到屏幕中央:M
    移动到屏幕底部:L
    移动到距屏幕底部x行:xL

    向下(前)滚动:ctrl + f
    向上(回)滚动:ctrl + b

    滚动到下一屏的中央: ctrl + d
    滚动到上一屏的中央: ctrl + u

    移动光标到屏幕中央(并把当前行带到屏中央,与M略有不同),小写字符:zz
    将当前行置于屏幕顶端 zt
    将当前行置于屏幕底端 zb

    行不动,整个文档向上移 ctrl + e
    整个文档向下移 ctrl + y

  • 编辑~/.vimrc使tab变为4个空格

    在.vimrc中(如果没有请新建)添加以下代码后,重启vim即可实现按TAB产生4个空格(注:ts是tabstop的缩写,设TAB宽4个空格):

    set ts=4
    set expandtab

    对于已保存的文件,可以使用下面的方法进行空格和TAB的替换:
    TAB替换为空格:

    :set ts=4
    :set expandtab
    :%retab!

    空格替换为TAB:

    :set ts=4
    :set noexpandtab
    :%retab!

    加!是用于处理非空白字符之后的TAB,即所有的TAB,若不加!,则只处理行首的TAB。

    注意:
    如果 vimrc 里有 set paste 设置的话会有冲突,使上面的配置不生效。

  • vim复制粘贴

    vim

    复制整行

    yy

    粘贴一次

    p

    粘贴多次(n代表数字)

    np

    +y 复制
    +p 粘贴

  • vim查看和更改文件的编码格式

    在Vim中查看文件编码

    :set fileencoding

    即可显示文件编码格式。
    如果你只是想查看其它编码格式的文件或者想解决 用Vim查看文件乱码的问题,那么在
    ~/.vimrc 文件中添加以下内容:

    set encoding=utf-8 fileencodings=utf-8

    这样,就可以让vim自动识别文件编码(可以自动识别UTF-8或 者GBK编码的文件),其实就是依照fileencodings提供的编码列表尝试,如果没有找到合适 的编码,就用latin-1(ASCII)编码打开。

    以指定的编码打开某文件

    如打开windows中以ANSI保存的文件

    vim file.txt -c "e ++enc=GB18030"

    文件编码转换

    在Vim中直接进行转换文件编码,比如将一个文件转换成utf-8格式

    :set fileencoding=utf-8

    查看文件格式

    :set fileformat?

    设置文件格式为 unix

    :set fileformat=unix

    设置 Byte Order Mark (BOM)

    :set bomb
    

    只保留文件 file a.txt 为 UTF-8 Unicode (with BOM) text, with CRLF line terminators

    :e ++ff=dos
    
  • vim添加多行注释/删除注释

    comment in/comment out

    两种方法

    • 第一种通过vim的视图编辑,一定要是vim,vi不行

    添加多行/全部注释:

    ctrl+v 进入列编辑模式,向下或向上移动光标,把需要注释的行的开头标记起来,然后按大写的I,再插入注释符,比如”//”,再按Esc,就会全部注释了。

    删除多行注释:

    先按v,进入visual模式,横向选中列的个数(如”/ /”注释符号,需要选中两列),再按Esc,再按ctrl+v 进入列编辑模式,向下或向上移动光标,选中注释部分,然后按d, 就会删除注释符号。

    • 第二种方法使用替换的方式

    添加多行注释(//):

    :%s/^/\/\//g来在全部内容的行首添加//号注释
    :2,50s/^/\/\//g在2~50行首添加//号注释

    反过来替换即是删除操作。

  • 编辑~/.vimrc,用vim新建文件时自动套用模板

    编辑~/.vimrc文件

    vim ~/.vimrc

    添加一行

    autocmd BufNewFile *.py 0r ~/.vim/template/simple.py

    新建simple.py文件

    mkdir -p ~/.vim/template/
    vim ~/.vim/template/simple.py

    加入以下内容

    #!/usr/bin/env python
    #-*- coding:utf-8 -*-
    #author: jpuyy date  jpuyy.com
    #modified by xx at date
    #version:
    #history:
    #relate on:

    这样每次新建 .py 文件的时候,就会自动套用上面的模版

    :)EOT