晒下我的vim+tmux

浏览: 91 发布日期: 2016-08-17 分类: vim

效果

VIM

最开始的想法是最简配置实现最高效的使用。 前几年基本只用了2个插件NERDTree,BufferExplorer。最近觉得是时候给它“升级”一下了,但尽量精简,使用频率不高的功能还是没有必要通过插件搞。

主要增加:

  • Vundle。 插件管理。插件一多还是用她管理方便一些,主要是升级、部署新的开发环境是都更加方便。
  • ack。 一直用rgrep, 但是身边同事都推荐ack, 试了下起码没有比原来差。
  • vim-airline。 多功能statusline,不仅漂亮了一点点,还有很多方便的提示,比如git分支、光标所在位置方法名、文件编码、光标位置百分比,末尾空格提示等等。

几个有用的配置

  • set list listchars=tab:→\ ,trail:·显示空格和tab。
  • set hlsearch incsearch smartcase ignorecase 搜索增强,忽略大小写匹配,从同事在服务器上的配置学到的。
  • cmap w!! w !sudo tee % > /dev/null 老是忘记sudo vim 又记不住tee怎么用,保存没有写权限的文件,干脆写到vim配置得了。

  • ctrlp搜索太慢,这样忽略掉不需要的目录和权限即可。

    let g:ctrlp_custom_ignore = {
      \ 'dir':  'vendor/bundle/*\|vendor/cache/*\|public\|spec',
      \ 'file': '\v\.(exe|so|dll|swp|log|jpg|png|json)$',
      \ }
  • autocmd FileType go,c,java,sh set ts=4 sw=4 sts=4 et c,java 等代码用4个空格缩进。
  • autocmd BufNewFile,BufRead *.json set filetype=javascript打开json时,用javascript的语法进行高亮显示。
  • 使用airline后,nerdtree不显示工作目录问题。
    ~/.vim/bundle/vim-airline/autoload/airline/extensions.vim:23改为
    'nerdtree': [ '%{exists("b:NERDTreeRoot")?b:NERDTreeRoot.path.str():""}', '' ],让NERDTree的status line继续显示当前工作目录,尤其是有时需要打开多个不同项目的vim时,这个提示很有用。

tmux

服务器上保持会话、恢复会话非常好用的工具,其实很多人也用来做终端的窗口管理,而且比起tab来说操作更舒服一些。配置也可以更自由

  • setw -g mode-keys vi tmux中翻页复制时,用vim的快捷键。
  • 打开新的window或者分屏时,当前目录默认为新建window或者分屏前所处的目录。

bind s split-window -h -c "#{pane_current_path}" bind v split-window -v -c "#{pane_current_path}" bind-key c new-window -c "#{pane_current_path}"
  • set -g base-index 1 如果觉得tmux状态栏的名字从0编号不习惯的话可以设置从1开始。
  • set -g history-limit 5000 跟终端的历史行数一个意思,设置大一些方便回查。
  • bind-key a send-prefix 默认情况终端都是emacs快捷键,比如ctrl r找历史操作命令、ctrl p上一条命令、ctrl n下一条命令、ctrl e光标到行尾、ctrl a到行首,但是如果tmux的prefix是C-a的话,这条配置可以通过ctrl+a a移动光标到行首。
  • set -g status-justify centre 状态栏中间显示window的名字。

更多配置

https://github.com/anvyzhang/dotfiles

返回顶部