Mac Terminal 提升使用體驗

最近重新配置了Mac Terminal,改變了Vim的整體語法高亮配色方案,添加了樹狀圖列表,大幅提升了使用體驗。"

Solarized

先從整體配色方案開始,用的是Solarized。

$ git clone git://github.com/altercation/solarized.git

首先在osx-terminal.app-colors-solarized文件夾中安裝Terminal整體配色方案,有兩個README。選擇自己喜歡的配色方案後設置為default。

接下來在vim-colors-solarized文件夾中將autoloadcolors兩個文件夾中的內容移動到~/.vim中相對應的位置,這裡完成的事Terminal中Vim的配色方案設置。

重要:如果選擇的是xterm-256color中的配色方案,在這一步中一定要閱讀doc文件夾中的solarized.txt,裡面有.vimrc的參數設置。

最後在.vimrc的配置中添加:

syntax enable
set background=dark
colorscheme solarized

具體更多配置方案可以參見solarized的README。

Pathogen

在安裝插件之前,先安裝一個管理插件的插件,否則.vim目錄管理起來會比較混亂。

$ git clone git://github.com/tpope/vim-pathogen.git

Pathogen會在.vim目錄下通過bundle進行管理,這樣.vim文件夾中一般只會有autoload, bundle, doc這三個文件,管理起來比較方便,尤其是我這種懶惰的插件重度依賴者。

$ git clone命令完成後,在.vim文件夾下建立autoload和bundle目錄,將pathogen.vim文件移動到autoload目錄下。

最後在.vimrc中配置:

call pathogen#infect()

NERD Tree

這是一個在Vim中要比樹狀圖顯示目錄更方便的目錄插件。

$ git clone git://github.com/scrooloose/nerdtree.git

nerdtree文件移動到bundle目錄下。

最後可以在.vimrc中配置快捷鍵,NERD Tree的喚出命令是:NERDTree

Coreutils

如果對文件列表高亮要求不是很高,可以在.bash_profile中設置ls -Galias,我用的是Coreutils插件來實現這一點。

$ brew install coreutils
$ gdircolors --print-database > ~/.dir_colors

最後配置.bash_profile

if brew list | grep coreutils > /dev/null ; then
  PATH="$(brew --prefix coreutils)/libexec/gnubin:$PATH"
  alias ls='ls -F --show-control-chars --color=auto'
  eval `gdircolors -b $HOME/.dir_colors`
fi

Powerline

這個插件單純追求使用美感,用在Vim下底部顯示狀態欄。具體效果見上方兩張Terminal的底部狀態欄。

$ git clone git://github.com/Lokaltog/vim-powerline.git

vim-powerline文件移動到bundle目錄下。

最後在.vimrc中進行配置:

set guifont=PoerlineSymbols\for\Powerline
set nocompatible
set t_Co=256
let g:Powerline_symbols = 'fancy'

.vimrc

這裡專門說一下.vimrc文件的配置。

自動插入文件描述及題頭

新建.c, .h, .sh, .java文件時自動插入描述的配置方法。

autocmd BufNewFile *.cpp,*.[ch],*.sh,*.java exec ":call SetTitle()"

func SetTitle()

if &filetype == 'sh'

    call setline(1,"\##################")

    call append(line("."), "\# File Name: ".expand("%"))

    call append(line(".")+1, "\# Author: Author")

    call append(line(".")+2, "\# mail: email address")

    call append(line(".")+3, "\# Created Time: ".strftime("%c"))

    call append(line(".")+4, "\###################")

    call append(line(".")+5, "\#!/bin/bash")

    call append(line(".")+6, "")

else

    call setline(1, "/*****************")

    call append(line("."), "    > File Name: ".expand("%"))

    call append(line(".")+1, "    > Author: Author")

    call append(line(".")+2, "    > Mail: email address")

    call append(line(".")+3, "    > Created Time: ".strftime("%c"))

    call append(line(".")+4, " ******************/")

    call append(line(".")+5, "")

endif

下面是自動插入題頭的配置:

if &filetype == 'cpp'

    call append(line(".")+6, "#include<iostream>")

    call append(line(".")+7, "using namespace std;")

    call append(line(".")+8, "")

endif

if &filetype == 'c'

    call append(line(".")+6, "#include<stdio.h>")

    call append(line(".")+7, "")

endif

autocmd BufNewFile * normal G

endfunc

可以根據自己的需要進行添改。

快捷鍵設置

對於鍵盤命令,用NERDTree舉例:

map <C-T> :NERDTree <CR>

這條配置的意思就是將:NERDTree命令設置為<C-T>後回車。可以根據這條配置設置其他的命令快捷鍵。

編譯運行

下面是C,C++自動編譯運行快捷鍵配置。

map <F5> :call CompileRunGcc()<CR>

func! CompileRunGcc()

    exec "w"

    if &filetype == 'c'

        exec "!g++ % -o %<"

        exec "! ./%<"

    elseif &filetype == 'cpp'

        exec "!g++ % -o %<"

        exec "! ./%<"

    elseif &filetype == 'java'

        exec "!javac %"

        exec "!java %<"

    elseif &filetype == 'sh'

        :!./%

    endif

endfunc

內容參考:

http://www.cnblogs.com/ma6174/archive/2011/12/10/2283393.html
http://www.cnblogs.com/chijianqiang/archive/2012/11/06/vim-3.html
http://linfan.info/blog/2012/02/27/colorful-terminal-in-mac/

results matching ""

    No results matching ""