zoukankan      html  css  js  c++  java
  • vim 好用指令& 配置 收集

    在开始操作前,先普及下基础概念,然后约定一下表达规范。
    1)Vim存在多个配置文件vimrc,比如/etc/vimrc,此文件影响整个系统的Vim。还有~/.vimrc,此文件只影响本用户的Vim。而且~/.vimrc文件中的配置会覆盖/etc/vimrc中的配置。这里我们只修改~/.vimrc文件。
    2)Vim的插件(plugin)安装在Vim的runtimepath目录下,你可以在Vim命令行下运行"set rtp“命令查看。这里我们选择安装在~/.vim目录,没有就创建一个。
    3)当本文说”在Vim命令行下运行cmdxx命令“时,意思是指在Vim的命令行模式下运行cmdxx命令,即在Vim的正常模式下通过输入冒号":"进入命令行模式,然后紧接着输入命令cmdxx。在后文描述中都会省略冒号":"输入。
    4)如果没有说明“在Vim命令行下运行某命令”,则是在shell中执行该命令。
    5)如果命令中间被空白符间隔或有与正文容易混淆的字符,我会用双引号将命令与正文区分。所以读者在实际操作时,不要输入命令最前面和最后面引号。

    nnoremap <unique> <S-Up> <C-W><Up>
    map <C-j> <C-W>j
    这两行配置是可以共存的

    行首添加一个字符串:%s/^/要插入的字符串
    行尾添加一个字符串:%s/$/要插入的字符串

    :%s/s+$//g 删除行尾空格 ,或者指定行 :#,#s/s+$//g 或 用V选择后:s/s+$//g
    :%s/^M$//g 删除行尾所有 ^M 字符       :%s/ //g

    :%s/:.*//g 删除从冒号开始直到行尾的所有部分

    列编辑数字、字母
    ctrl+v选择列,敲入:进入命令模式,输入I-1以第一个数字出发,幅度为-1顺序构建。
    ctrl+v选择列,输入:IA 字母只支持大写,小写再次编辑用~去转。

    //http://stackoverflow.com/questions/10760326/merge-multiple-lines-two-blocks-in-vim
    合并块(命令不能在合并处加间隔符需提前编辑后续块前缀)
    :1,4s/$/=getline(line('.')+4)/ | 5,8d
    或者 :5,8del | let l=split(@") | 1,4s/$/=remove(l,0)/

    隔行合并即1和2,3和4,5和6.。。指定行数可以用V选择后:g/^/ join
    :1,4g/^/ join

    行变列
    :%s/s+/ /g

    合并所有行
    :%j 或者 :%j!(此法不会再行尾添加空格)
    :1,$j 或者 :%s/ //g 或者ctl+v选择后+J

    制作宏:normal 下按q进入制作,按q取名,编辑, q结束制作
    再@q, 执行一次宏, 6@q就执行了6次.

    ci'、ci"、ci(、ci[、ci{、ci< - 分别更改这些配对标点符号中的文本内容
    di'、di"、di(或dib、di[、di{或diB、di< - 分别删除这些配对标点符号中的文本内容
    yi'、yi"、yi(、yi[、yi{、yi< - 分别复制这些配对标点符号中的文本内容
    vi'、vi"、vi(、vi[、vi{、vi< - 分别选中这些配对标点符号中的文本内容

    把上面的 i 改成 a 则可以连带配对的标点一起操作

    viw 光标在单词的任意字符上选中单词

    exvim有补全功能,ctrl+n也是

    gd 命令查找与光标所在单词相匹配的单词, 并将光标停留在文档的非注释段中第一次出现这个单词的地方..

    移动光标:
    Ctrl + b:上滚一屏. 即 page up.
    Ctrl + f:下滚一屏. 即 page down.
    Ctrl + d:下滚半屏
    Ctrl + u:上滚半屏
    G:移到文件最后
    W:移到下个字的开头
    B:跳至上个字的开头

    :g/^s*$/d 将所有不包含字符(空格也不包含)的空行删除.

    粘贴时不置换“剪贴板” 配置表里增加 xnoremap p pgvy

    Alt+1 2 3。。5改变当前单词的背景色

    删除包含特定字符的行:
    g/pattern/d (全局删除匹配行)
    1,5g/pattern/d (删除第1-5行里的匹配行)

    删除不包含指定字符的行:
    v/pattern/d
    g!/pattern/d

    删除指定的行:
    :x,.d #从x行删除到当前行;
    :.,xd #从当前行删除到x行;
    :x,.+3d #从x行删除到当前行后第三行;
    :x,.-1d #从x行删除到当前行前一行。

    删除重复行先执行:sort在执行下面的一条命令,当然更短平快的是:sort u
    :g/^(.*)$ 1$/d

    :g/^(.+)$ 1$/d

    :g/\%(^1$ )@<=(.*)$/d

    :%s/^(.*) 1$/1/ : delete duplicate lines
    :%s/^(.*)( 1)+$/1/ : delete multiple duplicate lines [N]

    :x 等价于 :wq

    连续单词搜索 /(<w+>)\_s*1   具体单词连续搜索 /(<sheniu>)\_s*1

    配置表设置搜索匹配高亮 set hlsearch

    按时间回退文本::earlier 1m 可以回退到1分钟前的状态  相反的转换:later

    把光标下的文字置于屏幕中间  zz

    编辑器转为16进制编辑器 :%!xxd

    多列替换
    实例:手上有一列宏没有注释。格式化加上注释。
    1.把多列注释直接写新的行首。
    2.列编辑注释前面增加容下定义长度空格。(列选中后>或者shift+.就是后缩,<就是缩进)
    3.列编辑选中定义复制或者剪切。列选中注释前的预留格子。p替换。

    大神指令链接 http://www.rayninfo.co.uk/vimtips.html

    -------------------------------------------------ex

    <leader>] 全局搜索函数定义和声明
    C-] 跳转到函数声明

    <leader>r 移除搜索结果中文本部分不包含vim搜索模式中所包含的。
    <leader>d 移除搜索结果中文本部分包含搜索模式包含的。
    <leader>fr 移除搜索结果中文件部分不包含vim搜索模式中所包含的。
    <leader>fd 移除说说结果中文件部分包含搜索模式包含的。

    "配置 全字匹配全局搜素
    nmap <leader>ff :call exgsearch#search(expand('<cword>'), '-w')<CR>

    解决 gvim Exuberant ctags (http://ctags.sf.net) not found in PATH. Plugin is not loaded
    let Tlist_Ctags_Cmd = g:exvim_custom_path.'/bin/ctags.exe'

    文件切换键映射:
    nnoremap <A-]> :bn<CR>
    nnoremap <A-[> :bp<CR>

    debian下安装
    解压后执行sh unix/install.sh sh osx/replace-my-vim.sh
    sudo apt-get install cTags
    sudo apt-get install id-utils
    sudo apt-get install cscope
    然后替换配置文件rc,a.vim目录/usr/share/vim/vim74/plugin

  • 相关阅读:
    【转载】实用VC++6.0插件
    关于无标题栏窗口拖动的问题
    VC6配置CXimage库
    扎实基础深入篇(七):函数和类没那么复杂
    扎实基础深入篇(六):while循环带动生产力
    扎实基础深入篇(五):字典也就是个弟弟
    扎实基础深入篇(四):听说if语句很叼?
    lxml类库的xpath的使用
    json与re的再次复习
    python基础汇总(四)
  • 原文地址:https://www.cnblogs.com/xiao0913/p/3597125.html
Copyright © 2011-2022 走看看