作者 主題: vi 使用鍵  (閱讀 8707 次)

0 會員 與 1 訪客 正在閱讀本文。

小徒兒

  • 區域板主
  • 鑽研的研究生
  • *****
  • 文章數: 621
    • 檢視個人資料
vi 使用鍵
« 於: 2004-07-28 21:55 »
http://www.study-area.net/tips/vim/Vim-9.html#set

vi 使用有分為 1.command mode 2.insert mod 3. ext mode

從insert mode -> command mode 請按esc
從command mode --> ext mode 請按 :
從comand mode -> insert mode 請按 i

在command mode裏可對文件進行編輯

如將第345行內容移至最後:  要按 3G3yyGp

將游標移至最後一行並插入一行為: Go

將所有的123換為456: /123 enter c3l 456 esc n. n. n. 直至所有的 123被換成456



nG                                             到第n行 G                                               到最後一行^g                                              顯示游標所在之行數  ^f                                               視窗下移一螢幕^b                                              視窗上移一螢幕


x                                         刪除游標所在之字元dd                                       刪除一行
ndd                                     刪除n行
u                                         undo上一命令
p,P                                      貼回
/string                                 找字串
:q!                                       quit
:zz                                       存檔(原名)
:w! filename                       存檔為filename
:set ic                                  忽略大小寫
:set nu                                 列出行數
:1,$ s/string1/string2/g       更改字串
:n1,n2 w! filename             將n1到n2行寫入
:r filename                          讀入filename


#資料來源phys.cts.nthu.edu.tw/workshop/focus/20060225/unix.ppt
------------------------------------------------------------------------------

跳至ext mode

設定顯示每一行的行號 :set number

設定縮排:set ai

設定tab位置 10:set tab 10

設為ms-dos換行形式 :set tx

---------------------------------------------------------------------------------

小徒兒

  • 區域板主
  • 鑽研的研究生
  • *****
  • 文章數: 621
    • 檢視個人資料
vi 使用鍵
« 回覆 #1 於: 2004-07-28 22:45 »
^ 移到游標目前所在文字列第一個非空白的字符
$ 移到游標目前所在文字列的結尾

H 移到第一行
G  or L 移到最後一行頭
 
右手鍵摸摸看(有凸出一點的) 是 j

h #go to the head of line
j #jump down
k #klimb up
l #go tail of line

h  j k   l

< v  ^ >

y3l  複製(yank)三個字符
c3l  改變(change)三個字符
d3l  刪除(delete)三個字符

yw  複製(yank)一個單字
cw  改變(change)一個單字
d3w  刪除(delete)三個單字

yy 複製現行一行
dd 刪除現行一行
 
3yy 複製現行游標往下三行

dG 刪除到end-of-file
yG 複製到end-of-file
cG 改變到end-of-file

--------------------------------------------------------
將abc替換成def(對1-最後一列進行處理)
1,$s/abc/def/g

將abc替換成def(對11-22列進行處理)
11,22s/abc/def/g

----------------------------------------------------------

.  代表重複前一個編輯動作
u 代表undo 取消前一個編輯動作
r undo按過頭,按r可在編輯歷史中游走

小徒兒

  • 區域板主
  • 鑽研的研究生
  • *****
  • 文章數: 621
    • 檢視個人資料
好好玩的vi
« 回覆 #2 於: 2004-07-29 00:23 »
將unix 命令的結果讀到檔案中
:r !date


假設你正在編輯一個檔案,想從一個phone檔案中讀取四個電話號碼,依照字母的順序.
:r !sort phone

將讀進來的檔案放在目前檔案的結尾
:$r /home/tim/data

將讀進來的檔案放在185行後插入
:185r /home/tim/data


可以將/及?搜尋作業與命令組合來更改文件,例如和c或d組合
:d?move

小徒兒

  • 區域板主
  • 鑽研的研究生
  • *****
  • 文章數: 621
    • 檢視個人資料
vi對程式設計的幫助
« 回覆 #3 於: 2004-07-29 00:35 »
:set cindent

:w hello.C

     
代碼: [選擇]
#include <stream.h>

     void main()
     {
                           cout << "hello, world!\n ;
                }
   


 :roll: 在第5行忘了加上關閉的引號     

:make hello

代碼: [選擇]
hello.C:5:unterminated string or character
         make: *** [hello] Error 1



:errlist

 :roll: :errlist 命令會將游標一到錯誤發生的那一行,並在狀態行顯示對應的錯誤訊息

以上是使用elvis的例子,在vim則用:cc來查看錯誤訊息,:errorformat來剖析錯誤檔案的內容




--------------------------------------------
心情小札
喜歡mr. vim (Bram Moolenaar) 如果你使用vim而且喜歡它, Moolenaar先生請求你對烏干達的孤兒作捐獻


--------------------------------------------

嗯...vi for java coding ???

小徒兒

  • 區域板主
  • 鑽研的研究生
  • *****
  • 文章數: 621
    • 檢視個人資料
小徒在vi裡跑來跑去
« 回覆 #4 於: 2004-07-29 00:59 »
代碼: [選擇]
:1,$
從第一行跑到最後一行

代碼: [選擇]
:x,y
從第x行跑到第y行

代碼: [選擇]
:x;y
從第x行跑到第y行,目前行會重設為x

代碼: [選擇]
:0
跑到檔頭

代碼: [選擇]
:$
跑到最後一行

代碼: [選擇]
:3
跑到第三行

代碼: [選擇]
:.
目前行

代碼: [選擇]
:%
從頭跑到尾,等於1,$

代碼: [選擇]
:/SHIT/
向後跑一直到有XX的行

代碼: [選擇]
:?GOLD?
向後跑一直到有OO的行


--------------------------------------------------
啥??   師父曰:還要再跑77 49 行  xp

WUTIWUG

小徒兒

  • 區域板主
  • 鑽研的研究生
  • *****
  • 文章數: 621
    • 檢視個人資料
資料來源
« 回覆 #5 於: 2004-07-29 08:12 »
資料來源

-------------------------------------------
精通vi 第六版
Linda Lamb & Arnold Robbins原著
林逸文譯
ISBN 957-8247-41-9

--------------------------------------------
netman

--------------------------------------------

小徒兒

  • 區域板主
  • 鑽研的研究生
  • *****
  • 文章數: 621
    • 檢視個人資料
代碼: [選擇]
for file in $*
do
ex - $file [color=red]<<[/color] end-of-script
g/thier/s//their/g
g/writeable/s//writable/g
wq
end-of-script done



假設此shell script存在於一個名為correct的執行檔案中, 則
$correct *.[Xx]

意思為將副檔名為txt的檔案都作thier及writeable的錯字置換

---------------------------------------------------------------------


資料來源
精通vi 第六版
Linda Lamb & Arnold Robbins原著
林逸文譯
ISBN 957-8247-41-9
第141頁

--------------------------------------------

HaWay

  • 大隻佬!
  • 老人組
  • 俺是博士!
  • *****
  • 文章數: 3974
    • 檢視個人資料
vi 使用鍵
« 回覆 #7 於: 2004-08-02 23:09 »
http://info.sayya.org/~edt1023/vim/
沒書的可以看這個,內容也滿多的! 我都看這個......:x
我做人那麼 nice, 肯定有什麼誤會.....