上一篇中提到设置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
更多可参考: