怎樣用Vi 編程3 附有 自己主寫python的VIMRC :)

來源:互聯網
上載者:User

距離前兩次寫完日誌又有一段時間了,用的越來越多,慢慢又發現了幾個小功能

前兩次的日誌,大家喜歡VIM的可以看下,

VI 編程1 http://www.cnblogs.com/amaoxiaozhu/archive/2012/03/23/2414007.html

VI 編程2 http://www.cnblogs.com/amaoxiaozhu/archive/2012/04/05/2423009.html

好了不多說,開始新的旅程:

1.  編輯篇:

  H M L 螢幕的頂、中、底部     [不用再費心去想是8j 還是12j 了,一鍵搞定~]

     gf          編輯游標處的檔案名稱  [最推薦這個了~ 很強大的功能!]

     '.           上次修改位置

     ctrl + o | i    游標位置回溯

     ls |vi -        編輯管道輸出

    

2.  模組篇:

  前提是安裝了NERDTree~

  使用某個模組:vi -c NERDTree

  直接開啟檔案夾可以使用 vi . 或 vi 檔案夾路徑

 

3.  進位篇

:%!xxd 將當前的文本轉換為16進位。大端法

:%!od 將當前的文本轉換為8進位。

:%!xxd -r將當前的文本轉換迴文本格式。

:%!hexdump將當前的文本轉換回16進位,小端法顯示。

註:小端法可以理解的記憶體顯示模式(不準確)。大端法可以理解為實際模式。

 

4.  其他命令篇

  %表示檔案的所有行,!xxd表示外部命令,結合在一起,就是當把當前vim上顯示的所有的行傳遞給xxd,xxd處理後的結果重新顯示在vim上。

  整理檔案:gg=G 

 G 跳到檔案末尾

  vim 編輯加密檔案vi -x file 會指定加密密碼

  g; 上次修改位置

  ctrl-c 或[ : 直接退出編輯模式 [神一般的快速鍵啊]

  @: 重複上次的執行命令

 "2p: 拷貝從第二次到剛才複製過的內容

 

5.  尋找篇

  f 同一行內尋找字元 f( 尋找(

  ; 重複上次尋找 c;修改到下一個尋找的字元

  df 刪除同一行內到某個字元的內容

  :g/waf 顯示所有的包含waf行的內容

  :g/waf/# 同時顯示行號

  /<ctrl - r><ctrl -f> 尋找游標處的單詞

  /keyword/1    游標定位在尋找單詞的下一行

     /keyword/e+1 游標定位在尋找單詞的結束位置右側+1

   /keyword/s-1  游標定位在尋找單詞的開始位置左側 -1

    /<ctrl -r > / else  上次搜尋單詞+else

     3ft 尋找行內的第三個't'

 

6. python代碼的tags產生

    在tools/scripts 路徑下,有python專門為VI提供的tags產生器 ptags.py

    在我的環境中我按照這個方式配置了tags:

               1. 在自己的開發目錄下產生python庫的 

     python ptags.py $(find . /usr/lib/python2.5/ -name '*.py'|grep -v 'git') 

              【很少會查到git的庫,leave it】

      2. 編輯.vimrc

  set tags=tags;      set autochdir

             首先使用目前的目錄擷取tags【後續開發,可以在新目錄中產生子tags】

             否則就繼續向上搜尋

 

附: 如果你也是一個python coder ~ 握個爪

set autoindentset syntax=onset nocpset softtabstop=4filetype plugin oncolorscheme IDLElet g:pydiction_location='/root/conf/vi/complete-dict'let Tlist_Show_One_File=1let Tlist_Exit_OnlyWindow=1let Tlist_Use_Right_Window = 1set tags=tags;    set autochdirmap <silent> <F5> mz?(*)<CR>yyggpA;<ESC>'z  " 建立函數原型imap <silent> <F5> <ESC>mz?(*)<CR>yyggpA;<ESC>'zAmap <F6> :call Test()<CR>            " 調試imap <F6> <ESC>:call Test()<CR>map <silent> <F7> :Grep<CR><CR><CR>        " 全域搜尋imap <silent> <F7> <ESC>:Grep<CR><CR><CR>map <F8> i#<ESC>j0                " 注釋imap <F8> <ESC>i#<ESC>j0map <F9> 0Ji<CR><ESC>                "對齊 平級imap <F9> <ESC>0Ji<CR><ESC>map <F10> 0Ji<CR>    <ESC>            "對齊 增加縮排imap <F10> <ESC>0Ji<CR>    <ESC>map <F11> 0Ji<CR><ESC>XXXX<ESC>            "對齊 減少縮排imap <F11> <ESC>0Ji<CR><ESC>XXXX<ESC>function Python_Test()    let mp = &makeprg    let ef = &errorformat    let exeFile = expand("%:t")    setlocal makeprg=python\ -u    set efm=%C\ %.%#,%A\ \ File\ \"%f\"\\,\ line\ %l%.%#,%Z%[%^\ ]%\\@=%m    silent make %    copen    let &makeprg     = mp    let &errorformat = efendfunctionfunction C_Test()    let cmd = "!gcc "    let option = "-O2 "    if search("math\.h") != 0    let option .= " -lm "    endif    exec cmd. " % " .option    endif    exec "!./a.out"    copenendfunctionfunction Test()    exec "w"    if    &filetype == "c"    exec "call C_Test()"    elseif &filetype == "python"    exec "call Python_Test()"    endifendfunction    

Enjoy VI Enjoy Code!

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.