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

今天才知道的一个命令让俺热泪盈眶 T___T

  •  
  •   kran · 2011-10-14 18:41:25 +08:00 · 6825 次点击
    这是一个创建于 4788 天前的主题,其中的信息可能已经有所发展或是发生改变。
    `set -o vi`

    这个是让shell里面使用vi的快捷键
    默认的是emacs的。
    23 条回复    1970-01-01 08:00:00 +08:00
    wazedix
        1
    wazedix  
       2011-10-14 19:44:56 +08:00
    用之前先问下恢复的命令是什么...

    不过shell里面还是emacs的快捷键比较方便点吧
    Kymair
        2
    Kymair  
       2011-10-14 19:54:13 +08:00
    恢复的命令是set -o emacs啊

    尽管我是Vim用户,但命令行编辑用vi模式还是太麻烦了,记住那几个常用的Emacs快捷键会使你的生活好过很多的

    C - A 行首 C - E 行尾C - F 向前移动 C - B 向后移动
    C - K 删除到行尾 C - U 删除到行首
    C - P 上一条命令
    C - N 下一条命令
    fly2never
        3
    fly2never  
       2011-10-14 19:55:25 +08:00
    @Kymair +1 命令行里面还是emac模式好用
    Numbcoder
        4
    Numbcoder  
       2011-10-14 20:09:00 +08:00
    +1 好用。
    dongsheng
        5
    dongsheng  
       2011-10-14 20:13:11 +08:00
    常年使用vi模式,没觉得有什么不方便的
    peizh2006
        6
    peizh2006  
       2011-10-14 20:27:51 +08:00
    多谢分享~
    可是试了一把,发现已经习惯emacs模式了
    lyklykkkkkkk
        7
    lyklykkkkkkk  
       2011-10-14 21:37:19 +08:00
    vi 能用数字+h/l来定位 能f/t+字母定位
    这一点也不错啊
    lldong
        8
    lldong  
       2011-10-14 21:40:08 +08:00
    之前试过,还是没emacs mode方便,推荐这篇cheatsheet http://www.catonmat.net/blog/bash-emacs-editing-mode-cheat-sheet/
    tomyiyun
        9
    tomyiyun  
       2011-10-14 21:49:38 +08:00
    马上又要开始辩论Vi和Emacs哪个好了么……真是月经贴~
    mywaiting
        10
    mywaiting  
       2011-10-14 23:57:58 +08:00
    @tomyiyun 高见......坐等你的说法成为现实.......
    dongsheng
        11
    dongsheng  
       2011-10-15 00:03:04 +08:00
    这么多人说emacs好,到底比vi模式好在哪里?
    liutanyu
        12
    liutanyu  
       2012-01-13 23:43:06 +08:00
    @dongsheng 不一定比vi好,只是比vi以外的其他都要好
    zava
        13
    zava  
       2012-05-15 10:15:45 +08:00
    说明你没有看 `readline` 的文档。
    chenxsan
        14
    chenxsan  
       2012-05-15 10:26:51 +08:00
    @wazedix 恢复的话把 'set -o vi ' 删除就可以。
    chenxsan
        15
    chenxsan  
       2012-05-15 10:40:51 +08:00
    emacs 模式很常见,许多输入框都有提供这种功能,比如 v2ex 的这个回复框,就可以使用 ctrl - k 清除光标到行首位置的字符,ctrl -a 跳到行首, ctrl - e 跳到行末。Vimperator 下 Google 搜索框也有这种功能,vi 模式的话这些就不能用了。而且命令行编辑使用 vi 模式而又没有所处模式提示的话,经常会弄错,所以个人更习惯用 emacs 模式。最后补废话一句:看个人需要嘛。(瞎子说:帮主,品味太差了吧。至尊宝则说:萝卜青菜,各有所爱嘛。)
    ybian
        16
    ybian  
       2012-05-15 10:42:32 +08:00
    不止shell,所有其他使用readline的交互式环境都可以配置用vi模式, 比如python, irb.
    ufo22940268
        17
    ufo22940268  
       2012-05-15 11:04:31 +08:00
    看到lz的帖子让我泪流满面
    ufo22940268
        18
    ufo22940268  
       2012-05-15 11:07:09 +08:00
    不过好奇怪的感觉,希望自己能适应。之前^p, ^k, ^u已经很习惯了,今天才知道这些组合键原来是emacs里面的
    join
        19
    join  
       2012-05-15 11:43:38 +08:00
    看到楼主的贴子我也流泪了,不过我还真的已经习惯了emacs的shell了。
    join
        20
    join  
       2012-05-15 11:43:39 +08:00
    看到楼主的贴子我也流泪了,不过我还真的已经习惯了emacs的shell了。
    join
        21
    join  
       2012-05-15 11:44:11 +08:00
    @ybian python 的交互环境怎么使用vi?
    join
        22
    join  
       2012-05-15 11:44:12 +08:00
    @ybian python 的交互环境怎么使用vi?
    ybian
        23
    ybian  
       2012-05-15 12:00:04 +08:00
    @join 我的home目录下有两个配置文件:

    .editrc:
    ================
    bind -v
    bind '\t' rl_complete
    bind ';;' vi-command-mode
    ================

    .inputrc
    ================
    set editing-mode vi
    set bell-style none
    ";;": "\e"
    ================

    刚试了下,在Mac下是前一个生效,在Linux(Debian) 下是后一个生效。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   908 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 21:46 · PVG 05:46 · LAX 13:46 · JFK 16:46
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.