※ [本文轉錄自 arjuna 信箱]
From: Wen-Nung Tsai <tsaiwn@csie.nctu.edu.tw>
Newsgroups: csie.course.intro-cs.a,csie.course.intro-cs.b
Subject: [FirstAid 資工人必學] 十分鐘愛上 vi
最好開兩個視窗, 一個看這篇, 一個練習 vi
(不會開兩個窗的趕快找個會的教你一下!)
以下提到 <ESC> 表示按左上角的 Esc 鍵 (Escape鍵)
照著這裡說的一步一步做!
首先在命令提示下打入 vi xx.c 接著按RETURN或ENTER鍵
進入vi畫面後, 打 :abbr p printf
按ENTER鍵後再打i
然後接著將以下逐列敲進去, 不要敲錯任何字喔
#include<stdio.h>
int main(){
int k;
duoble x;
for(k=1; k <=
5; ++k) {
ww("Ha.."); ww("Ha.Ha.. ");
x = 38.49;
ww("Hee.."); ww("Heehee..");
putchar('H'); ww("How are you?");
}
p("%f, byebye!", x);
p("再見\n");;
return 0;
}
敲完上列按下ENTER鍵後就按鍵盤左上角的 <ESC> 鍵
然後打 :w 並按下ENTER鍵
有沒注意到剛剛打 p 按了空白鍵或按 ( 鍵之後p會自動變 printf ?
現在可打 :abbr
並按 ENTER 鍵看看 (請注意以後只要後面沒字就是須按 ENTER 鍵)
再來試著隨變按這些鍵:
hjkl(小寫的HJKL)和 空白鍵 RETURN(或ENTER)鍵
-+ (減號鍵和加號鍵) 以及 上下左右鍵
試著打入一堆減號再按一堆 ENTER 鍵
如不小心發現打的字跑到文章中就快按 <ESC> 鍵
打入 /for
再打入 J (大寫的J, 注意 for 那列和 ++k 那列合併為一列)
然後再打 :w 並按下ENTER鍵 (存檔啦!)
再來打 :!cc xx.c ( 要求 C 的 compiler 編譯 xx.c 這程式檔案)
看到很多錯是不是?
按ENTER後應會回到vi的畫面
------ ------
打入:1
再打入 /uo
此時游標停在 uo 的 u 上
打入 xp (小寫x殺掉一字符, 小寫p則吐出剛剛殺掉的, 注意uo變ou)
打入 /ww
這表示要找到ww開頭的字
打入 cwprint<ESC> (注意 cw 表示要 change word, <ESC>表示 ESCape 鍵)
再打入 :w
再來打 :!!
它會又翻譯該程式, 錯誤變少了對不對?
再按 ENTER 鍵後又會回到vi的畫面
------ ------ ------ ------
打入:1
打入:1,$s/ww/printf/g
(表示由line 1到 line $($代表最後一line)的 ww 都改為 printf
如果沒有最後那個 "g" 則只改每列第一次出現的)
打入 /bye
打入 yyppppp 接著打入 :.-5
打入 4dd 然後按兩下 ENTER 鍵後打 p (小寫 p)
打入 ddP (即dd 後馬上打大寫的P)
再打入 :w
再來打 :!!
這次翻譯該沒錯誤了對不對?
再按 ENTER 鍵後又會回到vi的畫面
打入 :!a.out
再打入 :!helpvi
回來後再打入 :!vihelp
(P.S. 這 helpvi 和 vihelp 是很久以前我寫的, 可能不小心被系統管理員弄丟了)
滿意了? 打入 :q
現在你愛上 vi 了對不對 ?
cvi (elvis改來的)處裡中文字不會有半字的問題, 但它缺了一些功能
例如vi認得前面提到的 :abbr 但是cvi不認得
又例如vi認得 :set nu 但是cvi不認得
自己試 :set
和 :set all
並隨便試試就知到了
如果你常會做一些設定, 可將這些設定放入 .exrc 檔案中
例如放以下這些在 .exrc
set nu
set autoindent
abbr p printf(
abbr w while
abbr r return
再試一次 vi 你會更愛它, 還有一個 vi 的弟弟叫 vim (improve的意思)
有好奇心的可以試 vilearn
其它一些常用指令: o (開始輸入新的 line, 大寫 O 則加在此列之前)
0 (跑到該列最左邊)
$ (跑到該列最右邊)
:$ 並按 ENTER鍵 則跑到最後一line
:12 並按 ENTER鍵 則跑到line 12
Control_G 顯示目前 line number
最常按的鍵: <ESC> <ENTER> 減號鍵 空白鍵 h (小寫 h)
再試一次 vi 你會更愛它, 還有一個 vi 的弟弟叫 vim (improve的意思)
再試一次 vi 你會更愛它, 還有一個 vi 的弟弟叫 vim (improve的意思)
再試一次 vi 你會更愛它, 還有一個 vi 的弟弟叫 vim (improve的意思)
=========================================================
--
------------------
不要問我過得好不好
我的心事妳應該知道
-- end of forwarded message --
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.113.209.4
※ 編輯: arjuna 來自: 140.113.209.4 (03/23 11:18)
※ 編輯: arjuna 來自: 140.113.209.4 (03/23 11:22)
※ 編輯: arjuna 來自: 140.113.209.4 (03/23 11:22)