课程咨询 :13051183201

上海linux培训 > 雇主企业 > 企业面试题 > 如何提高Vim和Shell效率
  • 如何提高Vim和Shell效率

    发布:上海linux培训      来源:企业面试题      时间:2016-09-12

  • 如何提高Vim和Shell效率?

    1.使用a键左边的 crtl

    你上一次使用 CAPSLOCK 键是什么时候?很久没有了对不对?噢,我也是,它已经被遗忘了,它浪费了键盘上一个黄金位置。让我们把它重映射成 Control 键来发挥它的作用吧!这里告诉了你在不同的操作系统上的具体操作。

    现在你可以保持标准键位手势,随意的敲击到 a键左边的 crtl 了。

    2. 使用 ctrl-r 来搜索和自动重做历史命令

    许多人都知道可以使用箭头键来都调用上一个历史命令,但相对的,很少有人知道可以使用 ctrl-r 来迅速完成历史命令的调用。

    一旦找到相应的命令,可以通过回车来执行,或者在执行前对命令进行修改,这很容易会养成习惯,特别是在你把 CAPSLOCK 键重映射以后。

    3. 使用 OS X 系统的 iTerm

    iTerm 不是必须要用的高效工具,但绝对能提升效率。它有如下特性:

    屏幕分割

    选中即复制

    剪切历史

    全屏切换

    系统热键

    Exposé 所有 Tab

    保存当前快照

    我还不知道有哪个人换到 iTerm 以后还愿意换回来的。上吧。

    4. 把 Zsh 作为 Shell

    大部分人会像我以前一样是用 Bash 的人,看了 Zsh 的优点之后,绝大多数人就会对它赞不绝口并且再也不愿意用 Bash 了。它的特性如下:

    目录补全:ve/pl/re --> vendor/plugins/redmine

    环境变量展开:$PATH --> /your/full/path

    智能修正:/pbulic/html 变 /public/html

    拼写修正

    命令历史共享

    行编辑高亮模式

    完美兼容 Bash 大部分配置

    运行/bin/sh的时候可以媲美Bash

    支持vim模式

    OhMyZsh支持

    最后一条是决定性的,ohmyzsh包含大量插件(包括 rails、git、OS X、brew 等等),有超过80个终端主题和自动更新。ohmyzsh通过这些来让 shell 用起来很爽。更详细请查看这。

    5. 重映射 vim 的 ESCAPE 键

    vim 有多个模式并不是什么大问题,但在模式间切换的时候会感觉很糟。ESC 键有点远,这太麻烦了。当我面对新的 vim 环境时,所做的第一件事就是添加如下映射

    1inoremap jj

    6. 重映射 Vim 的 Leader 键

    如果你不熟悉 leader 键,也不知道它能为你做什么,那你就从这开始了解吧。它本质上是作为你快捷键的激活键,你可以自定义用哪个键作为你的 leader 键。所以,你可以:

    1nnoremap j VipJ

    这可以让你按下 leader 键结合大写 ‘j’ 后可视化的选择整段并加入行。

    我个人用 ‘,’ 键作为我的leader键,这样我可以用 ‘,’ 激活我所有的快捷键,然后通过 ‘jj’ 退出插入模式。你可以在 .vimrc中像这样映射:

    1let mapleader = “,”

    7. 在 Shell 中使用 vi 模式

    无论是 zsh 还是 bash 你都会想尽可能的使用同样的肌肉记忆,如果你是 vim 用户,这意味着你应该把你的 shell 从 Emacs模式(默认)切换到 vi 模式

    这意味着你可以用 vim 的方式编辑你的 shell 命令行:

    b 返回上一个单词

    dd 删除整行

    0, $移动到行末

    …等等。

    你可以通过添加下面这行代码到 .zshrc 或 .bashrc 文件来实现这一切:

    1bindkey -v

    你也可以像 vim 一样映射你的 escape 键:

    1bindkey -M viins ‘jj’ vi-cmd-mode

    另一个好处是可以通过j、k来自然的浏览历史记录。还可以在你的.zshrc文件中通过下面的代码添加ctrl-r的功能。

    8. 把tmux加入工作流程

    tmux是一个终端复用器,它允许你连接和管理多个服务器端会话。在tmux中可以启动并连接对话,还可以断开,然后在不同的时间地点再次连接。

    你也许熟悉类似的解决方案,GNU Screen,但比起 screen,tmux 有如下优势:

    screen 是一个又大又重的项目,并且它的编码中有许多问题

    tmux 是一个轻便的项目,有现代的、高效的代码库

    tmux 是一个完整的客户端服务器项目,而 screen 是屏幕仿真软件

    tmux 支持 vim 和 emacs 的键盘布局

    tmux 支持运行时自动重命名窗口

    tmux 能很方便的通过 shell 实现脚本化

    tmux 自带垂直分屏功能,而 screen 里屏幕被固定死了

    如果你用不上终端复用功能,也可以是尝试一下 tmux,你会获益的。[ 更新: 这有 tumx 的最全启蒙书。]

    9. 同步工作环境

    好了,在你的 MBP 能体验到酷炫的 shell 和 vim 了,但一旦你都 SSH 到你的 Linux 上,就会感觉完全不同,这太令人恼火了。还好,可以通过同步来处理这个问题。

    在 git 上为你的配置文件创建一个仓库,例如:Bash、Zsh、Vim 等等。记得保持更新。

    在你所用的每个系统上都克隆一份(配置文件)到对应系统的目录下。

    有评论说也可以用 Dropbox 来同步,似乎很棒,但我不确定在 Headless(Headless指没有显示器、键盘、鼠标等设备)的 Linux 服务器上工作效果如何。

    最后,欢迎你来学习我们的linux零基础入门教程,如果你对linux学习有任何疑问,请加入我们的学习交流群533759982。

上一篇:Linux运维笔试面试题目

下一篇:FreeBSD和 Linux有什么不同?

最新开班日期  |  更多

Linux--零基础全日制班

Linux--零基础全日制班

开班日期:2-10

Linux--全日班

Linux--全日班

开班日期:2-10

Linux--零基础周末班

Linux--零基础周末班

开班日期:2-15

Linux--业余班

Linux--业余班

开班日期:2-15

  • 地址:上海达内12大校区,就近安排,提供住宿(浦东/徐汇/人广/静安/普陀等)
  • 课程培训电话:13051183201     全国服务监督电话:400-111-8989
  • 服务邮箱 : tousu@tedu.cn
  • 2001-2016 达内时代科技集团有限公司 版权所有 京ICP证8000853号-56