# 練習 1:文本編輯器,vim
> 原文:[Exercise 1. Text Editor, The: vim](https://archive.fo/5vf0X)
> 譯者:[飛龍](https://github.com/wizardforcel)
> 協議:[CC BY-NC-SA 4.0](http://creativecommons.org/licenses/by-nc-sa/4.0/)
> 自豪地采用[谷歌翻譯](https://translate.google.cn/)
在 Linux 中,就像任何類 Unix 操作系統,一切都只是文件。而 Unix 哲學指出,配置文件必須是人類可讀和可編輯的。在幾乎所有的情況下,它們只是純文本。所以,首先,你必須學習如何編輯文本文件。
為此,我強烈建議你學習 vim 的基礎知識,這是在 Linux 中處理文本的最強大的工具之一。Vim 是由 Bill Joy 于 1976 年編寫的,[vi](http://en.wikipedia.org/wiki/Vi) 的重新實現。vi 實現了一個非常成功的概念,甚至 Microsoft Visual Studio 2012 有一個[插件](http://visualstudiogallery.msdn.microsoft.com/59ca71b3-a4a3-46ca-8fe1-0e90e3f79329/),它提供了一個模式,與這個超過 35 歲的編輯器兼容。你可以在這里玩轉它([這是在瀏覽器中運行的真正的 Linux](https://bellard.org/jslinux/vm.html?url=https://bellard.org/jslinux/buildroot-x86.cfg))。完成之后,最后獲取我的虛擬機。
如果我還沒成功說服你,你可以了解 [nano](http://www.howtogeek.com/howto/42980/the-beginners-guide-to-nano-the-linux-command-line-text-editor/)來代替。但至少要試試。
現在,登入`vm1`,之后鍵入:
```
vim hello.txt
```
你應該看到:
```
Hello, brave adventurer!
~
~
~
~
~
~
~
~
~
~
~
~
~
"hello.txt" [New File] 0,0-1 All
```
有一個笑話說,vim有兩種模式 - “反復嗶嗶”和“破壞一切”。那么,如果你不知道如何使用 vim,這是非常真實的,因為 vim 是模態的文本編輯器。模式是:
+ 普通模式:移動光標并執行刪除,復制和粘貼等文本操作。
+ 插入模式:輸入文本。
> 譯者注:還有一個命令模式,用于生成真 · 隨機字符串(笑)。
這十分使新手頭疼,因為他們試圖盡可能地避免普通模式。那么這是錯誤的,所以現在我將給你正確的大綱來使用 vim :
```
start vim
while editing is not finished, repeat
navigate to desired position in NORMAL mode
enter INSERT mode by pressing i
type text
exit INSERT mode by pressing <ESCAPE>
when editing is finished, type :wq
```
最重要的是,幾乎任何時候都呆在普通模式,短時間內進入插入模式,然后立即退出。以這種方式,vim 只有一種模式,而這種模式是普通模式。
現在讓我們試試吧。記住,按`i`進入插入模式,以及`<ESCAPE>` 返回到普通模式。鍵入以下內容(在每行末尾按`<ENTER>`):
```
iRoses are red
Linux is scary
<ESCAPE>
```
這是你應該看到的:
```
Roses are red
Linux is scary
~
~
~
~
~
~
~
~
~
~
~
~
~
4,17 All
```
現在我給你命令列表,在普通模式下移動光標:
+ `h` - 向左移動
+ `j` - 向下移動
+ `k` - 向上移動
+ `l` - 右移
+ `i` - 進入插入模式
+ `o` - 在光標下插入一行并進入插入模式
+ `<ESCAPE>` - 退出插入模式
+ `x` - 刪除光標下的符號
+ `dd` - 刪除一行
+ `:wq` - 將更改寫入文件并退出。是的,沒錯,這是一個冒號,后面跟著`wq`和`<ENTER>`。
+ `:q!` - 不要對文件進行更改并退出。
那就夠了。現在,將光標放在第一行并輸入:
```
oViolets are blue<ESCAPE>
```
之后,將光標放在`Linux is scary`那一行,并輸入:
```
oBut I'm scary too<ESCAPE>
```
你應該看到:
```
Roses are red
Violets are blue
Linux is scary
But I'm scary too
~
~
~
~
~
~
~
~
~
~
~
4,17 All
```
現在鍵入`:wq`保存文件,并退出。你應該看到:
```
Violets are blue
Linux is scary
But I'm scary too
~
~
~
~
~
~
~
~
~
~
~
"hello.txt" 4L, 64C written
user1@vm1:~$
```
好的。你做到它了。你剛剛在 vim 中編輯了文本文件,很好很強大!
## 附加題
+ 通過鍵入鍵入`vim hello.txt`再次啟動 vim,并嘗試我給你的一些命令。
+ 玩這個游戲,它會讓你更熟悉 vim:<http://vim-adventures.com/>
- 笨辦法學 Linux 中文版
- 練習 0:起步
- 練習 1:文本編輯器,vim
- 練習 2:文本瀏覽器,少即是多
- 練習 3:Bash:Shell、.profile、.bashrc、.bash_history
- 練習 4:Bash:處理文件,pwd,ls,cp,mv,rm,touch
- 練習 5:Bash:環境變量,env,set,export
- 練習 6:Bash:語言設置,LANG,locale,dpkg-reconfigure locales
- 練習 7:Bash:重定向,stdin,stdout,stderr,<,>,>>,|,tee,pv
- 練習 8:更多的重定向和過濾:head,tail,awk,grep,sed
- 練習 9:Bash:任務控制,jobs,fg
- 練習 10:Bash:程序退出代碼(返回狀態)
- 練習 11:總結
- 練習 12:文檔:man,info
- 練習 13:文檔:Google
- 練習 14:包管理:Debian 包管理工具aptitude
- 練習 15:系統啟動:運行級別,/etc/init.d,rcconf,update-rc.d
- 練習 16:處理進程,ps,kill
- 練習 17:任務調度:cron,at
- 練習 18:日志:/var/log,rsyslog,logger
- 練習 19:文件系統:掛載,mount,/etc/fstab
- 練習 20:文件系統:修改和創建文件系統,tune2fs,mkfs
- 練習 21:文件系統:修改根目錄,chroot
- 練習 22:文件系統:移動數據,tar,dd
- 練習 23:文件系統:權限,chown,chmod,umask
- 練習 24:接口配置,ifconfig,netstat,iproute2,ss,route
- 練習 25:網絡:配置文件,/etc/network/interfaces
- 練習 26:網絡:封包過濾配置,iptables
- 練習 27:安全 Shell,ssh,sshd,scp
- 練習 28:性能:獲取性能情況,uptime,free,top
- 練習 29:內核:內核消息,dmesg
- 練習 30:打磨、洗練、重復:總復習
- 下一步做什么
- Debian 手動安裝