Linux終端中的編輯器
阿新 • • 發佈:2018-12-09
上一篇中提到設定ssh連線的別名時雖然是在本地的機器設定,但是當遠端連線的機器上有檔案更改時該怎麼做呢?
Vim
vi/vim 都是Linux中的文字編輯器,Vim是vi的加強版,支援文字高亮提示之類的功能,在終端中如果編輯檔案是無法開啟圖形化介面的編輯器的,所以我們需要學習一款面向螢幕的文字編輯器。
三種模式
命令模式
使用vim開啟後就進入的是命令模式,通過 命令 對檔案進行常規的編輯操作,例如:定位,複製,刪除,黏貼等
編輯模式
在命令模式下按 i
就能進入編輯模式,按 ESC
可退出編輯模式
末行模式
在命令模式下 按 :
可進入末行模式,這時可以輸入命令來執行
以go的helloword為例子
在終端中可以使用 vim helloword.go 進入命令模式
這時如果想要在編輯其中輸入文字就需要按 i
進入編輯模式,這時候就可以在編輯器中輸入文字了,在編輯模式中與其他的普通編輯器沒多大的差別
package main
import "fmt"
func main() {
fmt.Println("hello world")
}
編寫完後發現,如果能顯示行號就好了,這時可以按ESC
退出編輯模式回到命令模式,然後在按 :
進入末行模式
輸入set nu,這樣行號就顯示了,輸入set nonu 就可以取消行號
1 package main
2
3 import "fmt"
4
5 func main() {
6 fmt.Println("hello world")
7 }
如果需要快速定位行號呢?
- 6gg 快速定位到第六行
- gg 快速定位到行首
shift
+ gg 快速定位到行尾
這時如果又想講hello world 多列印幾遍呢?
- 6gg 定位到第六行
- yy 複製一行
- p 黏貼一行
- 10p 黏貼十行
1 package main
2
3 import "fmt"
4
5 func main() {
6 fmt.Println("hello world" )
7 fmt.Println("hello world")
8 fmt.Println("hello world")
9 fmt.Println("hello world")
10 fmt.Println("hello world")
11 fmt.Println("hello world")
12 fmt.Println("hello world")
13 fmt.Println("hello world")
14 fmt.Println("hello world")
15 fmt.Println("hello world")
16 fmt.Println("hello world")
17 fmt.Println("hello world")
18 }
把第六行的hello world 刪除改成 hello go,
- 先進入尾行模式
輸入:/hello world 搜尋定位到第一個 hello world處 ,下一個的話按n
輸入 di“ 刪除了hello world
- 再按i進入編輯模式輸入 hello go 即可
最後在末行模式下輸入 w 或者 wq 即可儲存然後就可以執行檔案了,無go環境可忽略執行只做示例
- :w 儲存不退出
- :wq 儲存退出
- :!q 強制退出
lixingdeMacBook-Pro:~ lixing$ go run helloword.go
hello go
hello world
hello world
hello world
hello world
hello world
hello world
hello world
hello world
hello world
hello world
hello world
更多可參考: