zoukankan      html  css  js  c++  java
  • Vim备忘

    建议结合tmux使用,多开一个pane使用make或者使用tftp传输文件等。
    Ctrl+b z可以最大化当前pane,不用的时候再Ctrl+b z回到原窗口。


    1. 唯手熟尔

    1. Vim的模式

    Vim模式转换关系。

    graph LR cmd((命令模式)) input((输入模式)) normal((正常模式)) visual((可视模式)) normal--i/I a/A o/O-->input input--ESC-->normal normal--v/V/Ctrl+v-->visual visual--ESC-->normal normal--:-->cmd cmd--ESC-->normal

    正常模式:一般用于浏览文件,也包括一些复制、粘贴、删除等操作。

    命令模式:编辑器配置,文本查找和替换,文本块选择等。

    输入模式:文本输入和编辑。

    可视模式:模拟鼠标操作

    2. Vim退出

    命令 说明
    :q 退出未被编辑的文件
    :q! 强行退出vi,丢弃所做改动
    :x 存盘退出vi
    :wq 存盘退出vi
    ZZ 等同于:wq

    3. 光标移动

    上下左右移动

    在命令行下光标移动的方法:

    命令 说明
    k、Ctrl+P、<up_arrow> 向上移动,前面可以加数字表示移动多少行
    j、Ctrl+N、<down_arrow> 向下移动,前面可以加数字表示移动多少行
    h、Backspace、<left_arrow> 向左移动
    l、Space、<right_arrow> 向右移动

    移动到指定字符

    参考“查找”部分。

    词移动

    命令 说明
    w 向前移动,光标停在下个单词词首,每次一个单词
    W 向前移动,光标停在下个单词词首,每次一个字符串
    b 向后移动,光标停在前个单词词首,每次一个单词
    B 向后移动,光标停在前个单词词首,每次一个字符串
    e 向前移动,光标停在前个单词词尾,每次一个单词
    E 向前移动,光标停在前个单词词尾,每次一个字符串

    行移动

    光标快速定位。快速显示当前行?

    命令 说明
    I 光标进入行首并进入编辑模式。
    A 光标移至行尾并进入编辑模式。
    G 将光标定位到最后一行
    nG 将光标定位到第n行
    gg 将光标定位到第1行
    ngg 将光标定位到第n行
    :n 将光标定位到第n行

    页面窗口以及大范围移动

    命令 说明
    Ctrl+f/PageUp 向上翻页,前面可以加数字来表示翻多少页
    Ctrl+b/PageDown 向下翻页,前面可以加数字来表示翻多少页
    Ctrl+d 向上翻半页
    Ctrl+u 向下翻半页
    Ctrl+e 向下滚动
    Ctrl+y 向上滚动
    zt 光标所在行移动到窗口的顶部,侧重浏览
    zz 光标所在行移动到窗口的中间,侧重浏览
    zb 光标所在行移动到窗口的底部,侧重浏览
    H 光标移动到窗口的顶部,侧重窗口内编辑移动
    M 光标移动到窗口的中间,侧重窗口内编辑移动
    L 光标移动到窗口的底部,侧重窗口内编辑移动
    n% 移动到n%的位置

    窗口移动

    命令 说明
    Ctrl+w h/j/k/l 窗口间上下左右移动
    Ctrl+w H/J/K/L 窗口本身上下左右移动

    4. 文本选择

    命令 说明
    v 字符可视化模式(Characterwise visual mode)。文本选择是以字符为单位的。
    V 行可视化模式(Linewise visual mode)。文本选择是以行为单位的。
    Ctrl+v 块可视化模式(Blockwise visual mode)。可以选择一个矩形内的文本。

    5. 查找

    命令 说明
    / 向下查找
    向上查找
    q/ 在vim最下方开个新的窗口向下查找
    q? 在vim最下方开个新的窗口向上查找
    n 跳到下一个
    N 跳到上一个

    6. 文本编辑

    6.1 文本输入

    在命令行模式下输入编辑命令(i/I、a/A、o/O),就可以进入输入模式,Vi左下角将会提示“插入”字样。
    Vi的编辑命令。

    命令 说明
    a 在当前光标后面开始插入
    A 在当前行行末开始插入
    i 在当前光标前开始插入
    I 在当前和光标行行首开始插入
    o 从当前光标开始下一行开始插入
    O 从当前光标开始前一行开始插入

    6.2 文本处理

    文本块选定

    ESC+v

    复制和粘贴【*】

    y复制,p粘贴,yny复制n行。

    插入模式下粘贴

    Ctrl + r

    剪切和删除

    剪切

    命令 说明
    x或nx 从光标开始的一个或者n个字符
    X和nX 剪切光标前的一个或者n个字符

    删除

    命令 说明
    dd 删除光标所在的行
    D 删除从光标开始位置到行尾
    dw 删除从光标位置至该词末尾的所有字符
    d0 删除从光标开始至行首
    dnd 删除光标所在行开始的n行
    dnG 将光标所在行至第n行删除

    7. 文件浏览

    Vim下面原生的文件浏览

    命令 说明
    :Ex 在当前窗口浏览完之后直接打开文件
    :Vex 垂直分出来的一个窗口浏览文件
    :Sex 水平分出来的一个窗口浏览文件

    在窗格间切换的方法
    Ctrl+w+方向键——切换到前/下/上/后一个窗格
    Ctrl+w+h/j/k/l ——同上
    Ctrl+ww——依次向后切换到下一个窗格中
    插件的话推荐defx,NERDTree很久不更新了,不建议。

    8. Vim配置

    显示行号:

    设置命令 说明
    nu/number 显示行号
    nu! 切换显示/不显示行号
    nonumber 不显示行号

    查找设置:

    设置命令 说明
    incsearch 即时查看找到的结果
    hlsearch 对匹配的所有项目进行高亮显示
    ignorecase 忽略大小写
  • 相关阅读:
    初认识AngularJS
    (imcomplete) UVa 10127 Ones
    UVa 10061 How many zero's and how many digits?
    UVa 11728 Alternate Task
    UVa 11490 Just Another Problem
    UVa 10673 Play with Floor and Ceil
    JSON对象和字符串的收发(JS客户端用typeof()进行判断非常重要)
    HTML.ActionLink 和 Url.Action 的区别
    EASYUI TREE得到当前节点数据的GETDATA方法
    jqueery easyui tree把已选中的节点数据拼成json或者数组(非常重要)
  • 原文地址:https://www.cnblogs.com/dluff/p/13617980.html
Copyright © 2011-2022 走看看