vim在文本输入模式怎么向右移动光标? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Esay
V2EX    Vim

vim在文本输入模式怎么向右移动光标?

  •  
  •   Esay 2012-05-15 09:06:33 +08:00 10107 次点击
    这是一个创建于 4963 天前的主题,其中的信息可能已经有所发展或是发生改变。
    vim使用插件可以补全括号,但是变量名写完之后总得按箭头很不爽,默认设置中有没有在输入模式向右移动的快捷键?
    21 条回复    2015-05-28 16:36:37 +08:00
    ugoa
        1
    ugoa  
       2012-05-15 09:45:12 +08:00   3
    输入模式下只能用箭头控制光标, 所以我习惯把这些用Emacs下的快捷键来映射:

    inoremap <C-e> <END>
    inoremap <C-a> <HOME>
    inoremap <C-f> <Right>
    inoremap <C-b> <Left>
    inoremap <M-f> <S-Right>
    inoremap <M-b> <S-Left>
    inoremap <M-n> <Down>
    inoremap <M-p> <Up>

    用control组合键来控制输入模式下的光标移动,这样就不用去按箭头,方便多了。
    Esay
        2
    Esay  
    OP
       2012-05-15 10:57:59 +08:00
    @ugoa 这样结合很符合mac下输入的习惯啊 十分感谢!
    ugoa
        3
    ugoa  
       2012-05-15 11:15:57 +08:00
    @Esay 如果你再把Ctrl键和Cap键的键位互换一下的话,效率会更高的,呵呵,不过这是个人习惯问题。
    Esay
        4
    Esay  
    OP
       2012-07-11 11:24:35 +08:00
    @ugoa 不知道为什么 在MacVim下


    inoremap <M-f> <S-Right>
    inoremap <M-b> <S-Left>
    inoremap <M-n> <Down>
    inoremap <M-p> <Up>

    这四个映射是失效的。

    在命令行输入 :imap

    ant_sz
        5
    ant_sz  
       2012-07-11 11:28:23 +08:00
    @Esay 下meta键很纠结的,貌似是先按一下esc神马的…
    ivenvd
        6
    ivenvd  
       2012-07-11 11:29:38 +08:00
    有些插件可以直接按 TAB 跳转到括号后面输入。
    一般插件则是直接按 )]} 就可以覆盖掉直接写。
    另外插入模式可以按 M-L 后移并进入普通模式。
    mitnk
        7
    mitnk  
       2012-07-11 12:27:57 +08:00
    我是输入 () 后按ESC,再按i 来编辑的,没有感觉太纠结。
    (如果是 {\n}的话,输入后ESC,再按大O进行内容插入)

    当括号里内容很少,或已经构思好的情况下, 先 ( 然后输入内容,再输入 ).
    mitnk
        8
    mitnk  
       2012-07-11 12:33:37 +08:00
    啊,貌似我看错问题了。。。 - -!

    问题是:输入好()里的内容再如何移动到括号右边吗?

    我是先ESC再按A的。
    用vim基本用不到光标键(除了输入search命令时偶尔用到)
    darasion
        9
    darasion  
       2012-07-11 12:39:28 +08:00
    只有自动缩进就好。

    自动补全的功能很可怕,经常引入各种 bug !想都不想的用了一个提示的函数,很多时候看起来像,但不是想要的。找 bug 很麻烦。
    9
        10
    9  
       2012-07-11 13:04:19 +08:00
    Esay
        11
    Esay  
    OP
       2012-07-11 13:22:05 +08:00
    @ant_sz 哦 我的meta键好像是option 按下option再按字母都是特殊符号
    Esay
        12
    Esay  
    OP
       2012-07-11 14:14:41 +08:00
    @mitnk 都是很有用的技巧,谢谢啦
    jerommix
        13
    jerommix  
       2012-07-27 14:52:52 +08:00   1
    auto.vim
    wuhx
        14
    wuhx  
       2012-07-27 19:50:32 +08:00
    这个问题也困扰了我很久,后来换成emacs + evil 模式
    然后ctrl+f

    玩括号必然是paredit了
    lyklykkkkkkk
        15
    lyklykkkkkkk  
       2012-07-28 04:49:33 +08:00
    inoremap <Space><Space> <Right>
    Esay
        16
    Esay  
    OP
       2012-07-28 08:16:13 +08:00
    @wuhx 因为最近用xcode多一点 所以也比较习惯用ctrl+f了 看来我应该试试emacs
    dingstyle
        17
    dingstyle  
       2012-07-28 13:23:11 +08:00
    按照楼主这种情况,应当在插入模式下键去文本,按ESC,然后按A跳到行尾(也就是括号后面),再按i继续插入。
    VIM之所以没有很方便的插入模式下移动光标的方法,是因为不鼓励这种方式按下ESC回到普通模式,便可以很迅速地定位到文本中任何位置,且手不需要离开home区。我相信这不比C-或M-这类组合键效率更低。
    NemoAlex
        18
    NemoAlex  
       2012-07-28 13:33:05 +08:00
    @9 这东西没有 README 么,怎么看啊
    yache
        19
    yache  
       2012-07-29 14:40:02 +08:00
    收藏了。
    phay
        20
    phay  
       2012-07-29 18:43:48 +08:00
    是因为对于modal-editing的不适应,才会有这种键绑定需求么?那么可能emacs以及其各种图形简化编辑器可能比较负荷lz需求
    wangzhangup
        21
    wangzhangup  
       2015-05-28 16:36:37 +08:00
    @lyklykkkkkkk 这个好用,收藏!Thx
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     889 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 29ms UTC 21:25 PVG 05:25 LAX 13:25 JFK 16:25
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86