首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
宝塔
V2EX  ›  程序员

vim 在编辑/插入模式下快速移动光标你们一般怎么弄?

  •  
  •   shijingshijing · 147 天前 · 4395 次点击
    这是一个创建于 147 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我个人是 page up,page down,上下左右方向键直接上的,这个也是 SlayerS BoxeR 当年打星际的手法(暴露年龄)

    想问问有多少人是 Esc 切换到 Normal Mode 下,然后 hjkl 一顿操作的?

    也看见有人改了配置按住 Ctrl 配合 hjkl 来操作,这样感觉不通用。

    或者还有其他方法?

    69 回复  |  直到 2019-07-01 16:28:36 +08:00
        1
    billlee   147 天前
    我是不用方向键的,手要离开主键盘区,效率太低了。
        2
    shijingshijing   147 天前
    @billlee 是用 Esc 在两种模式之间切来切去么?
        3
    starrycat   147 天前 via Android   ♥ 1
    m-hjkl,不过很少用到
        4
    PTLin   147 天前
    有时候需要移动一下光标的我一般用 C-o 加 hjkl 什么的,同时设置了个快捷键用来跳转到行尾,还设置了 m-hjkl 但也是很少用。
        5
    vyronlee   147 天前 via iPhone
    我所有移动操作都是在 Normal 模式下
        6
    KasuganoSoras   147 天前
    按下 Esc,然后输入
    :set mouse=a
    开始体验鼠标点击移动光标的快乐 √
        7
    KasuganoSoras   147 天前   ♥ 1
    当你想要切换回普通编辑模式的时候,只需要
    :set mouse=c
    就行了
        8
    KannaMakino   147 天前 via iPhone
    hjkl ✖️
    ↑↓←→ ✔️
        9
    billlee   147 天前
    @shijingshijing #2 是啊,写代码的时候也很少会需要翻页移动的啊,一般就是附近几个词、几行之间移动。大范围的移动我一般直接用搜索或 tag 跳转。
        10
    newtype0092   147 天前
    正常不都是 Esc 出来么?左手点下 Esc 右手 hjkl 衔接很流畅,习惯了后点 Esc 完全不经过大脑,好像系统自动帮你按的一样。
        11
    weixiangzhe   147 天前 via iPhone
    w b f 行内移动
    行首^ 行尾$
    c u 或 c d 翻页之类的
    insert 模式绑定为 emac 的 c npbf
    也有
    ...
    vim 里移动可以学几天吧 还有用 easy motion 之类的,vim 移动是主要功能
        12
    deyilee   147 天前
    设置了按键绑定
    之前在用 gvim 时,双击,,(英文逗号)是光标右移动
    现在用 vscode,就用 alt+hjkl 来控制 insert 模式下的光标上下左右
        13
    deyilee   147 天前
    按 esc 毕竟要切换模式,不是太流畅
        14
    jdhao   147 天前 via Android
    不退出插入模式,大范围移动,不如使用 vscode
        15
    weixiangzhe   147 天前 via iPhone
    esc 主要问题是太远,绑为 ctrl 加 esc 是最合理的
    寄出老键盘图
    https://i.bmp.ovh/imgs/2019/06/c65299aaa4766e35.jpeg

    或者直接按 ctrl [ 和绑定位 jk 也是不错的
        16
    weixiangzhe   147 天前 via iPhone
    ![]( https://i.bmp.ovh/imgs/2019/06/c65299aaa4766e35.jpeg)
        17
    pkookp8   147 天前 via Android
    这时候我就放弃 hjkl 用方向键了
        18
    20015jjw   147 天前 via Android
    当然按 esc 啊.. vim 就是这么用的..
    esc/ctrl dual role caplocks 学习一下?
        19
    scriptB0y   147 天前
    Emacs Mode,Ctrl-a Ctrl-e Ctrl-b Ctrl-f 之类的。
        21
    congeec   147 天前 via iPhone
    单行编辑,emacs 更高效。所以我在 vim 里加了 emacs 绑定
        22
    StarryFK   147 天前 via Android
    用熟了其实也感觉 hjkl 作为方向键很顺手的,甚至有些游戏也是采用 hjkl 作为方向键的
        23
    SingeeKing   147 天前
    难道不是 WE
        24
    silencefly   147 天前 via iPhone
    把 esc 映射到 kj 手不用离开键盘
        25
    szzhiyang   147 天前
    Power Keys 的空格编辑功能

    https://PowerKeys.GitHub.io/space
        26
    szzhiyang   147 天前
    等 Power Keys 的空格编辑功能流行起来后,Vim 和 Emacs 就再也不会有新用户了。
        27
    shihira   147 天前 via Android
    我会比较 prefer 把上下左右 map 到 alt+kjhl,系统全局
        28
    wweir   147 天前 via Android
    同全局 alt+hjkl。而且,自己写配置统一三大桌面下 Vim vscode zsh 的快捷键
        29
    mengzhuo   147 天前 via iPhone
    买一块可编程键盘,把 CapsLock + AWSD 换成光标
        30
    darknoll   147 天前
    用箭头的就别用 vim 了吧
        31
    nicevar   147 天前
    数字直接接 hjkl 不是更快
        32
    TrembleBeforeMe   147 天前
    学习 emacs 设置一个修饰键
        33
    HannibaI   147 天前   ♥ 1
    vim 按 ctrl + [ 也可以退出编辑模式,再把 caps lock 映射到 ctrl,就可以按 caps lock+[ 退出编辑模式,手基本不需要离开键盘。
        34
    catinsides   147 天前
    按行 C-E C-Y
    按 1/2 C-U C-D
    按页 C-F C-B
    当前行居中 zz

    非要用 hjkl 的话,我一般是 5j5j...
        35
    xiaocaibaozi   147 天前 via Android
    我把<Leader>设置成;,把 esc 映射成<Leader><Leader>和;;,然后不管中英文,按两下小指就行了再用 hjkl 移动。
        36
    loading   147 天前 via Android
    我选择了用鼠标滚轮和方向键
        37
    ahonn   147 天前
    什么,模式难道不是编辑器自己切的么?
        38
    codelegant   147 天前
    我的习惯,将 双击 j 绑定为 ESC,然后 w e b ^ $ 这五个键定位列。行间移动,较大距离就行号 + G,小范转就 j,k。
        39
    poisedflw   147 天前
    难道不是 Ctrl+C,然后各种移动?
        40
    ech0x   147 天前 via iPhone
    你不习惯切回 normal 模式为什么要用 vim 呢?
        41
    ech0x   147 天前 via iPhone
    @szzhiyang 你这个还要按 0.1 秒,我按一下 esc 键用不了这么长时间。
        42
    ynyounuo   147 天前 via iPhone
    真的所谓 vim 「高手」都是摒弃 hljk 的,参考 vimgolf 的大部分高级不作弊的解法。当然实际上并不需要这么苛刻,我装了 hard mode 没两天卸载了。
        43
    cstj0505   147 天前
    真羡慕你们写代码快的
    除了写文档,写代码时候光逻辑我都得考虑半天,代码之间的移动在整个过程中占比非常非常小
        44
    szzhiyang   147 天前
    @ech0x 我写代码时手腕丝毫不动,比你反复按 Esc 键舒服太多了,不服不行。
        45
    hellodudu86   147 天前
    ctrl+[
    hjkl+web+easy motion
        46
    MaxTan   147 天前
    平时多是 normal 模式状态,Casps Lock 绑定 esc 习惯性有事没事都按下,只有编辑的时候按 o、i、a、O、I、A 切插入模式
    光标只用在 normal 模式下移动,小范围内移动 h、j、k、l、e、r、^、$,大范围 ctrl+f、ctrl+b、gg、G、行号 gg
    使用方向键移动光标右手会离开主键盘区的,这样就一点也不 vim 了
        47
    Rorshach   147 天前
    我用 vim,而且是鼠标大师
        48
    lzhCoooder   147 天前
    Esc 返回 normal 然后 hjkl 的举手
        49
    jon   147 天前
    浏览器我都用 vim 模式操作
        50
    shawndev   147 天前
    上下可以通过行号跳转,左右暂时无解。其实我觉得 vscode 都已经支持远程编辑了,干嘛还要和自己过不去呢,难道你们都不需要列编辑,不需要格式化的吗。
        51
    70k   147 天前
    小范围肯定 hjkl
    稍大范围 ctrl+u ctrl+d

    最佳的操作方式是 有自己的命名规范
    搜索关键字然后用 n 跳转到相应位置

    恨不得把全部代码写到一个文件里面 当然还有 buffer 可以用 : )
        52
    neoblackcap   146 天前
    我一般都是按 Esc,用 vim 就是不想用那么多组合键。
        53
    MrCard   146 天前
    可以将 esc 改成~键,不然实在太远了
        54
    Akiyu   146 天前
    小范围:
    还是方向键好使

    大范围:
    C-u C-d

    知道准确的范围;
    n + hjkl (其中 n 是行数)

    邪门歪道 ( 保命):
    设置鼠标支持, 具体 google
        55
    Sparetire   146 天前 via Android
    esc 映射 jk
        56
    lancelock   146 天前
    60 键盘没有方向键 pageUP pagedown, 用着用着你就习惯模式切换了
        57
    andy2415   146 天前
    空格 + hjkl
        58
    hoyixi   146 天前
    除了光标移动快捷键

    还有跳到下个词、下个句子、下个标点、下个括号、下个匹配、下个....等等的快捷键, 把“下”换成“上”同理


    这里提到的只是一小部分,想知道更多建议自己去学
        59
    lenvens   146 天前
    hjkl esc 挺顺手的
        60
    james122333   146 天前
    基本的就很好用了 善用跳字 不满意还有
        61
    tiedan   146 天前
    别用 ESC 太远了不好按,可以用 ctrl + [
        62
    james122333   146 天前
    https://vim.fandom.com/wiki/Using_marks
    https://github.com/easymotion/vim-easymotion
    都可以参考 vim 操作模式是重点 但 vim 简单扩充性也是重点
    不满意自己写 自己掌控编辑器 而不是被编辑器掌控...
    除非你就是想拿现成的...
        63
    james122333   146 天前
    vim 就算你只会 shell 也可以扩充
        64
    leky   146 天前
    inoremap <C-b> <C-o>h
    inoremap <C-f> <C-o>l
    inoremap <M-b> <C-o>b
    inoremap <M-f> <C-o>e
    inoremap <C-a> <C-o>^
    inoremap <C-e> <C-o>$
    inoremap <C-w> <C-g>u<C-w>
    inoremap <C-u> <C-g>u<C-u>
        65
    Sainnhepark   146 天前 via Android
    shift+上下 一次移动五行
    shift+左右 移动到行首行尾
    再来两个插件:
    vim-matchup
    sneak
        66
    darkbill   146 天前
    同 24 楼的 @silencefly +1
    把 esc 映射到 jk 手不用离开键盘
        67
    SmallZheng   146 天前
    fd 映射 esc,手都不用移动。
        68
    Samuelcc   146 天前 via Android
    不退出插入模式移动不是 vim 的用法吧。。
    vim 的 pattern 就是应该完成一个操作就 esc 的
    这样你撤销 /恢复也是比较符合逻辑的
        69
    lampxiongdi   139 天前
    inoremap jj <ESC>
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   4062 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 32ms · UTC 07:31 · PVG 15:31 · LAX 23:31 · JFK 02:31
    ♥ Do have faith in what you're doing.