mac系統終端的color scheme配置和vim配置


一、配置終端

solarized http://ethanschoonover.com/solarized

簡單配置腳本:

#!/bin/sh

git clone git://github.com/altercation/solarized.git
cd solarized
osname=$(uname -s);

case $osname in
    "Darwin" )
        echo $osname
        cd osx-terminal.app-colors-solarized
        ./"Solarized Dark ansi.terminal"
        ;;
    "Linux" )
        echo $osname
    ;;
esac

官網有比較詳細介紹。

 

二、配置vim

vundle https://github.com/gmarik/vundle

這是個vim插件管理神器,有了它可以方便安裝各種插件

我的配置文件:

set nocompatible              " be iMproved
filetype off                  " required!

set rtp+=~/.vim/bundle/vundle/
call vundle#rc()

" let Vundle manage Vundle
" required! 
Bundle 'gmarik/vundle'

" My bundles here:
"
" original repos on GitHub
Bundle 'tpope/vim-fugitive'
Bundle 'Lokaltog/vim-easymotion'
Bundle 'rstacruz/sparkup', {'rtp': 'vim/'}
Bundle 'tpope/vim-rails.git'
" vim-scripts repos
Bundle 'L9'
Bundle 'FuzzyFinder'
Bundle 'Solarized'


" non-GitHub repos
Bundle 'git://git.wincent.com/command-t.git'
" Git repos on your local machine (i.e. when working on your own plugin)
"Bundle 'file:///Users/gmarik/path/to/plugin'
" ...

filetype plugin indent on     " required!
"
" Brief help
" :BundleList          - list configured bundles
" :BundleInstall(!)    - install (update) bundles
" :BundleSearch(!) foo - search (or refresh cache first) for foo
" :BundleClean(!)      - confirm (or auto-approve) removal of unused bundles
"
" see :h vundle for more details or wiki for FAQ
" NOTE: comments after Bundle commands are not allowed.
"

set nu
syntax enable
set hlsearch
set showmode
set ruler
set tabstop=4
set shiftwidth=4
set encoding=utf-8

set background=dark
colorscheme solarized

一篇比較詳細的文章

Git時代的VIM不完全使用教程-->http://beiyuu.com/git-vim-tutorial/

最近整理了VIM的配置,換上插件管理的神器-----Vundle,由他引發的VIM生態環境的改善,堪稱完美。遂打算寫一份簡單的教程,分享Git時代VIM新世界的美麗動人之處。對VIM有基礎的同學,可直接跳至插件管理部分。

第一次使用VIM,會覺得無所適從,他並不像記事本,你敲什么鍵就顯示什么,理解VIM的需要明白他的兩種模式: - 命令模式 (Command Mode) - 編輯模式 (Insert Mode)

命令模式下,可以做移動、編輯操作;編輯模式則用來輸入。鍵入i,o,s,a等即可進入編輯模式,后面解釋原因。

模式的設計是VIM和其他編輯器最不同的地方,優勢和劣勢也全基於此而生。

以下介紹的鍵盤操作,都是大小寫敏感的,並且要在命令模式下完成,需注意:

  • h 向左移動一個字
  • j 向下移動一行
  • k 向上
  • l 向右

這四個鍵在右手最容易碰到幾個位置,最為常用。

  • w 下一個word w(ord)
  • W 下一個word(跳過標點)
  • b 前一個word b(ackward)
  • B 前一個word(跳過標點)
  • e 跳到當前word的尾端 e(nd)
  • 0 跳到當前行的開頭
  • ^ 跳到當前行第一個非空字符
  • $ 跳到行尾

助記:0(第0個字符),^$含義同正則表達式

  • { 上一段(以空白行分隔)
  • } 下一段(以空白行分隔)
  • % 跳到當前對應的括號上(適用各種配對符號)
  • /xxxx 搜索xxxx,然后可以用n下一個,N上一個移動
  • # 向前搜索光標當前所在的字
  • * 向后搜索光標當前所在的字
  • fx 在當前行移動到光標之后第一個字符x的位置 f(ind)x
  • gd 跳到光標所在位置詞(word)的定義位置 g(o)d(efine)
  • gg 到文檔頂部
  • G 到文檔底部
  • :x 跳到第x行(x是行號)
  • ctrl+d 向下翻頁 d(down)
  • ctrl+u 向上翻頁 u(p)

修改

  • i 在光標當前位置向前插入 i(nsert)
  • I 在本行第一個字符前插入
  • a 在光標當前位置向后插入 a(fter)
  • A 在本行末尾插入
  • o 向下插入一行
  • O 向上插入一行
  • :w 保存
  • :q 退出
  • :wq 保存並退出

刪除

  • x 刪除當前字符
  • dd 刪除當前行 d(elete)
  • dw 刪除當前光標下的詞 d(elete)w(ord)

復制粘貼

  • yy 復制當前行 y(ank)
  • yw 復制當前光標下的詞 y(ank)w(ord)
  • p 粘貼 p(aste)
  • P 粘貼在當前位置之前

限於篇幅,在這里我僅介紹下我非常常用的幾個操作。

因為VIM所有的操作都是原子化的,所以把這些操作程序化就非常簡單了:

  • 5w 相當於按五次w鍵;
  • 6j 下移6行,相當於按六次j;
  • 3J 大寫J,本來是將下一行與當前行合並,加上數量,就是重復操作3次;
  • 6dwd6w 結果是一樣,就是刪除6個word;
  • 剩下的無數情況,自己類推吧。
  • di" 光標在""之間,則刪除""之間的內容
  • yi( 光標在()之間,則復制()之間的內容
  • vi[ 光標在[]之間,則選中[]之間的內容
  • 以上三種可以自由組合搭配,效率奇高,i(nner)
  • dtx 刪除字符直到遇見光標之后的第一個x字符
  • ytx 復制字符直到遇見光標之后的第一個x字符
  • ma 將當前位置標記為a,26個字母均可做標記,mbmc等等;
  • 'a 跳轉到a標記的位置;
  • 這是一組很好的文檔內標記方法,在文檔中跳躍編輯時很有用;
  • qa 將之后的所有鍵盤操作錄制下來,直到再次在命令模式按下q,並存儲在a中;
  • @a 執行剛剛記錄在a里面的鍵盤操作;
  • @@ 執行上一次的macro操作;
  • 宏操作是VIM最為神奇的操作之一,需要慢慢體會其強大之處;

VIM的基本操作,可以挖掘的東西非常多,不僅僅需要記憶,更需要自己去探索總結,熟練之后,效率會大幅度提升。后面會給出一些參考鏈接。

終於到這篇Blog我最想討論的部分了。VIM的強大不僅僅體現在操作的高效率,更有強大而充沛的插件做支援,插件豐富了之后,就面臨查找和管理的問題。

在遇見Vundle之前,我用Pathogen管理插件。Pathogen還算方便,只需要把相應插件,放在bundle目錄下即可,不需要再像以前那樣逐個放置單獨的文件到相應目錄,大大節省了勞動力,管理起來也一目了然,覺得還不錯,至少比vimball那種需要執行命令安裝的方式好一些。

我真希望我早些遇見Vundle。Vundle受到Pathogen和Vimball的啟發,於是有了現在的模樣。Vundle的邏輯是這樣的:

  • Vim Script選好你想要的插件;
  • 在VIM的配置文件中寫一句 Bundle plugin_name
  • 執行一下Vundle的初始化命令,插件就裝好了;
  • 升級和卸載也是同樣的簡單;

完美的世界!

Vundle的安裝很簡單:

  1. git clone http://github.com/gmarik/vundle.git ~/.vim/bundle/vundle

然后寫配置文件.vimrc

  1. set nocompatible " be iMproved
  2. filetype off " required!
  3. set rtp+=~/.vim/bundle/vundle/
  4. call vundle#rc()
  5. " let Vundle manage Vundle
  6. " required!
  7. Bundle'gmarik/vundle'
  8. " vim-scripts repos
  9. Bundle 'vim-plugin-foo'
  10. Bundle 'vim-plugin-bar'
  11. filetype plugin indent on " required!

其中Bundle后面的內容,就是插件的名字,插件維護在Vim-Script.org

然后,打開VIM之后,可以輸入以下命令:

  1. "安裝插件:
  2. :BundleInstall
  3. "更新插件:
  4. :BundleInstall!
  5. "卸載不在列表中的插件:
  6. :BundleClean

現在大部分的插件都已經從Vim.org遷移到了Vim-Script.org,而且很多作者也認領了自己的插件,直接在這個Github的項目下更新,一個比Vim.org更科學更有效的生態環境,就這樣完美的形成了。

在此非常嚴重的感謝vim-scripts.org的創建者Scott Bronson,和Vundle的作者gmarik。他們的創新和分享精神,讓這個世界又美好了一些。

也感謝業界良心Github。Vim-Scripts.org整站就是用Github Pages建立維護的,對於個人來說,這是很好的選擇,有興趣的同學可以參看我之前的博客:使用Github Pages建獨立博客

有了Vundle,再裝插件就是件享受的事情了。我常用的插件有:

  1. #相較於Command-T等查找文件的插件,ctrlp.vim最大的好處在於沒有依賴,干凈利落
  2. Bundle'ctrlp.vim'
  3. #在輸入(),""等需要配對的符號時,自動幫你補全剩余半個
  4. Bundle'AutoClose'
  5. #神級插件,ZenCoding可以讓你以一種神奇而無比爽快的感覺寫HTML、CSS
  6. Bundle'ZenCoding.vim'
  7. #在()、""、甚至HTML標簽之間快速跳轉;
  8. Bundle'matchit.zip'
  9. #顯示行末的空格;
  10. Bundle'ShowTrailingWhitespace'
  11. #JS代碼格式化插件;
  12. Bundle'_jsbeautify'
  13. #用全新的方式在文檔中高效的移動光標,革命性的突破
  14. Bundle'EasyMotion'
  15. #自動識別文件編碼;
  16. Bundle'FencView.vim'
  17. #必不可少,在VIM的編輯窗口樹狀顯示文件目錄
  18. Bundle'The-NERD-tree'
  19. #NERD出品的快速給代碼加注釋插件,選中,`ctrl+h`即可注釋多種語言代碼;
  20. Bundle'The-NERD-Commenter'
  21. #解放生產力的神器,簡單配置,就可以按照自己的風格快速輸入大段代碼。
  22. Bundle'UltiSnips'
  23. #讓代碼更加易於縱向排版,以=或,符號對齊
  24. Bundle'Tabular'
  25. #迄今位置最好的自動VIM自動補全插件了吧
  26. #Vundle的這個寫法,是直接取該插件在Github上的repo
  27. Bundle'Valloric/YouCompleteMe'

以上插件可以在vim-script.org找到源碼和文檔,ZenCodingEasyMotion演示點鏈接,你會心動的。

因為配置不斷在更新,所以放上我的配置的鏈接:.vimrc配置

VIM在一開始會覺得非常不習慣,一定要堅持下去,收獲的會更多,不僅僅是在裝大俠方面的哦~

關於VIM的使用,這篇博客僅僅介紹了很小的一部分,網絡上還有大量朋友總結的心得,常學常有收獲:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM