• [转]vim 常用命令


    vim 常用命令
    分类: 系统运维2014-08-24 23:15:57
    转载:http://blog.sina.com.cn/s/blog_6c090c5d0101c2nv.html
    经过一些格式整理
    打开窗口
    &vim
    :new name 新开窗口,如果保存的话文件名就是name
    :split 横向切割窗口
    :vsplit 纵向切割窗口
    &shell
    vim -o file1 file2 ... 水平打开多个窗口
    vim -O file1 file2 ... 垂直打开多个窗口
    vim -d file1 file2 ... 垂直打开多个窗口并且进行比较
    vimdiff file1 file2 ... 垂直打卡多个窗口并且进行比较
    关闭窗口
    &vim
    :q / :close 关闭当前窗口
    :only 保留当前窗口
    :qall 退出所有窗口
    :wall 保存所有窗口

    切换窗口
    &vim
    :ctrl w h/j/k/l 分别进行左下上右切换, 或者将hjkl换为上下左右键
    :ctrl w 进行依次切换
    调整窗口
    &vim
    ctrl w + 行数增加
    ctrl w - 行数减少
    n ctrl w + 行数增加n行
    n ctrl w - 行数减少n行

    ctrl w > 列数增加
    ctrl w < 列数减少
    n ctrl w > 列数增加n
    n ctrl w < 列数减少n

    :res num 设置行数为num
    :res +num 增加num行
    :res -num 减少num行

    :vertical res n 设置列数为n
    :vertical res +n 增加n列
    :vertical res -n 减少n列

    ctrl w = 让所有的窗口适中
    ctrl w | 调整为最大宽度
    ctrl s _ 调整为最大高度

    ctrl w H/J/K/L 分别移到最边缘
    命名窗口
    &vim
    :f file 给窗口重命名,那么在保存的时候会生成一个同窗口同名的新文件
    多窗口编辑

    水平分割

    :sp 当前编辑的文件,分割到一个窗口再打开
    :sp filename 分割一个窗口,打开文件filename
    :split 同sp
    :new
    :new filename

    垂直分割

    :vsplit
    :vnew

    调整窗口位置

    ctrl w H/J/K/L 将当前窗口移动位置
    打开多个文件
    &shell
    vi a b c 打开多个文件
    &vim
    :n 跳到下一个文件
    :e# 回到刚才编辑的文件
    :prev 上一个文件
    :next 下一个文件
    :prev! 上一个文件
    :next! 下一个文件
    :first 第一个文件
    :last 最后一个文件
    :args 显示打开的文件列表

    浏览文件
    &vim
    :Ex 浏览当前目录下的所有文件
    :Sex 水平分割当前窗口,并在当前窗口打开目录查看
    :ls 显示当前的buffer情况
    vim与shell切换
    &vim
    :shell 可以在不关闭vi的情况下切换到shell
    :exit 从shell回到vi
    执行shell命令
    &vim
    :!command 如::!pwd :!ls
    撤销重做
    &vim
    u, U 撤销上一次操作
    :e! 撤销未保存的全部编辑,并重新载入文件
    ctrl r 恢复撤销的操作
    保存退出
    :w 保存
    :q 关闭文件
    :wq 保存并且关闭文件
    :q! 不保存强制退出
    :qa 关闭所有文件退出
    光标定位
    w 下一个字首
    e 下一个字尾
    ^ 行首
    $ 行尾
    A 行尾插入
    o 添加空行
    文件内查找
    &vim
    n, N 找到key后,n跳到后一个位置,N跳到前一个位置
    , # 光标所在处的key为关键字,精确匹配
    g
    , g# 光标所在处的key为关键字,模糊匹配
    /key 向后模糊匹配
    ?key 向前模糊匹配
    /, /? 精确匹配
    批量替换
    &vim
    %s/要被取代的字符串/新的字符串/g
    复制粘贴删除
    yy 复制行
    nyy 复制n行
    p 粘贴
    dd 删除行
    ndd 删除n行
    yw 复制字
    dw 删除字
    v, V, ctrl v 进入可视化模式, y 复制选择块
    显示与编辑样式
    set statusline+=%f, set laststatus=2 在状态行显示文件名,路径,行数
    set nu 显示行号
    set nonu 影藏行号
    set list 显示断行符等特殊符号
    set autoindent 自动缩进
    set cindent c样式的缩进
    多行注释
    ctrl v 进入列编辑模式,选中需要注释的行的开头,按下大写I, 再按下ESC
    缓冲区编辑
    &vim
    :e filename 打开新的缓冲区看别的文件(如果你之前在同时编辑多个文件)
    :e# / ctrl ^ 切换最近的两个缓冲区
    :buffers 显示缓冲区文件列表
    :bd / :bd 1 / :bd 2 关闭其中一个
    :b 1 / :b 2 切换到其中一个
    :bp 切换上一个
    :bn 切换下一个
    ctrl w ^ 让缓冲区的文件来分割窗口
    保存回话
    &vim
    :mksession! xxx.vim(Session.vim) 保存当前的vim状态
    source Session.vim 载入保存的回话
    &shell
    vim -S 自动载入之前的回话
    配置自动保存和载入回话
    在配置好之后,只需要在第一次执行 :mksession! xxx.vim,以后就直接在当前目录vim即可
    ~/.vimrc
    " auto save and load session
    let g:
    let g:OrigPWD=getcwd()
    if filereadable(g:AutoSessionFile)
    if argc()==0
    au VimEnter * call EnterHandler()
    au VimLeave * call LeaveHandler()
    endif
    endif
    function! LeaveHandler()
    exec "mks! ".g:OrigPWD."/".g:AutoSessionFile
    endfunction
    function! EnterHandler()
    exe "source ".g:AutoSessionFile
    endfunction
    热门插件
    => scripts -> browse all
    ctags
    yum install ctags

    创建ctags文件,在需要创建tags文件的目录下用

    &shell
    ctags -R

    使用ctags

    &vim
    ctrl ] 当光标在函数上是,会跳到函数定义处
    ctrl t 返回
    :ta functioname 跳转到函数定义出
    &shell
    vim -t functioname 打开时搜索并且跳转
    :tnext / :tprev / :tn / :tp 多个匹配的tags时跳转
    未完待续……

  • 相关阅读:
    HDU4289 Control 最大流
    POJ3281 Dining 最大流
    HDU4738 Caocao's Bridges 无向图的桥
    HDU4865 Prince and Princess 强连通分量+二分图判定
    POJ 1904 King's Quest 强连通分量+二分图增广判定
    HDU 4635 Strongly connected 强连通分量
    HDU 4280Island Transport(Dinc非STL 模板)
    POJ 2752Seek the Name, Seek the Fame(next数组妙用 + 既是前缀也是后缀)
    Codeforces Round #346 (Div. 2)E
    POJ2318TOYS(叉积判断点与直线位置)
  • 原文地址:https://www.cnblogs.com/spfanlost/p/14772239.html
Copyright © 2020-2023  润新知