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

在编辑器里面你怎么样从当前的括号跳到括号后边

  •  
  •   aisensiy ·
    aisensiy · 2013-03-28 16:25:24 +08:00 · 15983 次点击
    这是一个创建于 4018 天前的主题,其中的信息可能已经有所发展或是发生改变。
    举个例子 * 表示当前的光标位置

    var abc = function(arg1*)

    想到这个状态

    var abc = function(arg1)*

    你要怎么做?用 键盘右下角的 -> ? 有什么非常好的办法么

    求各大编辑器的实现,vim webstorm eclipse sublime text ...
    第 1 条附言  ·  2013-03-28 16:59:18 +08:00
    我说下我目前 vim 的情况。我把 insert mode 的 jj 绑定了 ESC 那么 jj 后就进入 normal mode 然后 l 即可,但是感觉还是有点多的样子,最好是离手比较近的键一键搞定,估计要绑定个别的什么按键了。
    43 条回复    1970-01-01 08:00:00 +08:00
    ThunderEX
        1
    ThunderEX  
       2013-03-28 16:28:56 +08:00   ❤️ 1
    输入右括号啊
    End键也行啊
    linuxer
        2
    linuxer  
       2013-03-28 16:29:12 +08:00
    sublime text下我一般都是按 Shift+0 就能跳出。方向键太远了,够不着。
    royalar
        3
    royalar  
       2013-03-28 16:29:42 +08:00
    vim 用 % 啊,可以装上matchit插件
    aisensiy
        4
    aisensiy  
    OP
       2013-03-28 16:36:31 +08:00
    就你理解我的意思了 你楼上和楼下都木有
    twm
        5
    twm  
       2013-03-28 16:36:46 +08:00
    记得eclipse java是tab直接跳.
    aisensiy
        6
    aisensiy  
    OP
       2013-03-28 16:36:56 +08:00
    @linuxer 我就是说这个问题 就是 方向键太远了,有没有可替代方案
    aisensiy
        7
    aisensiy  
    OP
       2013-03-28 16:37:18 +08:00
    @twm 不是吧 我记得我尝试过的 不行的
    xdata
        8
    xdata  
       2013-03-28 16:45:05 +08:00
    我是用AutoHotkey针对常用编辑器绑了自定义快捷键
    alt+; 为End键+分号. 根据标题栏区分是否正在编辑某些行尾加分号的语言.其他则仅为End键.
    CapsLock+; 为End键

    还有其他CapsLock上的一大堆自定义热键.
    例如最常用的全局的CapsLock+hjkl, 好久没使用过独立方向键了.
    激活CapsLock改为Shift+CapsLock, 再按一次就取消.

    作为Windows下几大神器之一,再加上Dropbox,实在是绝配.
    aisensiy
        9
    aisensiy  
    OP
       2013-03-28 16:50:38 +08:00
    @ThunderEX 哦 不好意思 你说的对,很多编辑器确实是可以用右括号搞定这个事情的。
    5night
        10
    5night  
       2013-03-28 16:53:49 +08:00   ❤️ 1
    我觉得最舒适的应该是回车。Eclipse自带, Sublime Text见以下链接21楼:
    http://ruby-china.org/topics/4824
    binux
        11
    binux  
       2013-03-28 16:59:13 +08:00
    把方向键改成hjkl
    aisensiy
        12
    aisensiy  
    OP
       2013-03-28 17:01:30 +08:00
    @xdata 在 capslock 键做文章啊,我还真没尝试过呢
    polythene
        13
    polythene  
       2013-03-28 17:17:26 +08:00
    @xdata +1
    同ahk
    qgewfg
        14
    qgewfg  
       2013-03-28 17:19:48 +08:00
    vim 简单,xp
    qgewfg
        15
    qgewfg  
       2013-03-28 17:20:27 +08:00
    哦我理解错了
    qgewfg
        16
    qgewfg  
       2013-03-28 17:23:18 +08:00
    其实我觉得吧,Esc + l足够方便了,要经常练习一下小指的功夫
    NemoAlex
        17
    NemoAlex  
       2013-03-28 17:34:30 +08:00
    Sublime Text 以及系统其它地方
    Ctrl + F
    liwei
        18
    liwei  
       2013-03-28 17:34:50 +08:00
    目前是emacs胜出?
    peizh2006
        19
    peizh2006  
       2013-03-28 17:44:31 +08:00
    输入右括号 +1
    aisensiy
        20
    aisensiy  
    OP
       2013-03-28 17:50:58 +08:00
    @liwei 没人提及啊
    fanzheng
        21
    fanzheng  
       2013-03-28 20:59:37 +08:00
    *表示的是光标的位置么?sublime text里面,当你输到function的时候,snippet会有提示,按tab键就会补全到
    var abc = function function_name (argument) {
    // body...
    }
    然后输入function_name,tab键,输入argument,tab键,输入//body.... tab键不能跳出}
    aisensiy
        22
    aisensiy  
    OP
       2013-03-28 21:43:43 +08:00
    @fanzheng 哦 我用 sublime 的时候似乎忽略了这些
    Numbcoder
        23
    Numbcoder  
       2013-03-28 22:04:33 +08:00
    vim 简单
    shiift + a,这样顺便还能在后面打个 ;号
    mml
        24
    mml  
       2013-03-28 22:42:40 +08:00
    vim, INSERT模式中,我一般是ctrl+o,然后a ,
    其实也可以用ctrl+[ 回到normal模式,然后xxx
    kran
        25
    kran  
       2013-03-28 23:21:51 +08:00 via iPhone
    为何不在vim的插入模式多绑几个emacs的快捷键呢
    aisensiy
        26
    aisensiy  
    OP
       2013-03-28 23:22:29 +08:00
    @mml ctrl + [ 依然不够方便啊,还是有点远 如果把 caps lock 绑上 ctrl 估计好些吧
    aisensiy
        27
    aisensiy  
    OP
       2013-03-28 23:22:48 +08:00
    @kran 说的好
    mml
        28
    mml  
       2013-03-28 23:38:51 +08:00
    @aisensiy 我本来是把 mbp 的 caps 和esc 换了,不过后来想想还是和ctrl换了,因为还是ctrl用的比较多,
    觉得 ctrl+o 比较适合这个场景
    :help ins-special-special 里面的说明是: CTRL-O execute one command, return to Insert mode
    eth2net
        29
    eth2net  
       2013-03-29 00:23:59 +08:00 via iPhone
    vim中insert mode配置emacs键位,c-e跳出
    cassyfar
        30
    cassyfar  
       2013-03-29 00:37:15 +08:00
    方向键不是最快的方式吗? 只需要按一次键,而且和(),[],""这些符号距离很近
    min
        31
    min  
       2013-03-29 00:52:35 +08:00
    C-f?
    aisensiy
        32
    aisensiy  
    OP
       2013-03-29 09:34:48 +08:00
    @mml 嗯 是的 然后问一句你改 caps 是系同级别还是 vim 级别的改?如果是 vim 里面怎么改?
    aisensiy
        33
    aisensiy  
    OP
       2013-03-29 09:35:49 +08:00
    @eth2net vim 粉们会拒绝这么做吧 o_o
    fwee
        34
    fwee  
       2013-03-29 09:47:44 +08:00
    vim的百分号不就是为了干这个的吗..
    dingstyle
        35
    dingstyle  
       2013-03-29 10:52:23 +08:00
    楼上有几位理解错了吧,楼主应该是说vim下不离开insert模式要怎么跳出括号。其实如果括号后面就是行尾,按Ctrl-e就可以了。另外,内置自动补全括号的编辑器,直接键入')'光标不就跳到括号外面去了么?
    aisensiy
        36
    aisensiy  
    OP
       2013-03-29 11:46:59 +08:00
    @dingstyle 是的 上面也有人提及这个了呢~
    mml
        37
    mml  
       2013-03-29 12:33:51 +08:00
    @aisensiy 我是系统级的,因为 osx 和linux下都很多快捷键是ctrl,就直接改系统好了,vim里面木改过。
    aisensiy
        38
    aisensiy  
    OP
       2013-03-29 12:36:37 +08:00
    @mml 哦 好吧
    hexor
        39
    hexor  
       2013-03-29 12:40:47 +08:00
    我来搬个砖好了 非原创 貌似上面有位提到了链接里的东西

    Sublime Text 2 中的方式 key-bindings User中 加入

    { "keys": ["enter"], "command": "move", "args": {"by": "characters", "forward": true}, "context":
    [
    { "key": "following_text", "operator": "regex_contains", "operand": "^[)\\]\\>\\'\\\"\\ %>\\}\\;\\,]", "match_all": true },
    { "key": "preceding_text", "operator": "not_regex_match", "operand": "^.*\\{$", "match_all": true }
    ]
    }


    实现的效果就是 Enter可以跳出括号了

    另外 如果同时出现了自动补全的状况 请用Tab键 选择候选词
    eth2net
        40
    eth2net  
       2013-03-29 13:17:49 +08:00 via iPhone
    @aisensiy 这键位还是可以引入的
    hbin
        41
    hbin  
       2013-03-29 13:31:57 +08:00
    做个 map 吧
    ```
    imap <C-b> <ESC>i
    imap <C-f> <ESC>la
    ```
    虽然我也是个 Emacs 用户 ;)
    DaniloSam
        42
    DaniloSam  
       2013-03-29 13:57:44 +08:00
    emacs

    c-f || c-e
    asxalex
        43
    asxalex  
       2013-03-30 10:32:05 +08:00
    imap <C-f> <right>
    imap <C-b> <left>
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5837 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 41ms · UTC 06:18 · PVG 14:18 · LAX 23:18 · JFK 02:18
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.