Linux 終端的文本編輯器中,較著名的有:Nano、Vim、Emacs。其它文本編輯器還有 Gedit、Sublime,Atom 等。
1、Nano
1.1、基礎命令
-
nano
:打開 nano 編輯器。 -
nano [文件]
:打開文件,文件不存在則創建。 -
常用參數
nano -m [文件]
:激活鼠標。nano -i [文件]
:激活自動縮進。nano -A [文件]
:激活智能 Home 鍵,根據行首處有無縮進來跳轉。nano -miA [文件]
:三者組合。
1.2、快捷操作
-
EXC X
:顯示\隱藏幫助文檔。 -
Ctrl G
:幫助文檔。 -
Ctrl X
:退出。 -
Ctrl O
:保存。 -
Ctrl J
:對其當前段落。 -
Ctrl R
:讀取文件。 -
Ctrl W
:查找。 -
Ctrl Y
:上一頁。 -
Ctrl V
:下一頁。 -
Ctrl K
:剪切當前行。 -
Ctrl U
:粘貼 。 -
Ctrl C
:光標位置。 -
Ctrl T
:拼寫檢查。 -
Ctrl \
:替換。
1.3、配置文件
Linux 中的配置文件大多以點開頭,以 ”rc“ 結尾。許多程序啟動時,都需要“rc”(run command)后綴的初始文件或配置文件。
Nano 有一個.nanorc
配置文件,用於設置 Nano 的一些選項,每個用戶都可以在自己家目錄/home/用戶名/
創建 .nanorc
配置文件。
如果家目錄沒有.nanorc
,則 nano 會使用全局的配置文件。
- 個人 Nano 配置,
cd /home/用戶名
,nano .nanorc
# 激活鼠標
set mouse
# 激活自動縮進
set autoindent
# 激活智能Home鍵
set smarthome
- 全局 Nano 配置,
sudo nano /etc/nanorc
,該配置文件中有 Nano 的所有配置,只需將 set 配置語句前 # 號去掉,即可激活對應配置。
2、Vim
Vi iMproved,Vi 文本編輯器的進階版。
2.1、四大模式
- 交互模式:Interactive Mode, Vim 默認模式,執行剪切、粘貼、撤銷等操作。
- 插入模式:Insert Mode,按
i、a、o (I、A、O)
鍵進入,執行輸入文本操作。 - 命令模式:Command Mode,也稱為底行命令模式,執行保存、退出、配置等操作。
- 可視模式:Visual Mode,高亮選取文本后的交互模式。
2.2、基礎命令
-
vim
:打開 Vim 編輯器。 -
vim [文件]
:打開文件,文件不存在則創建。 -
交互模式
ESC
:進入交互模式。h | ↑
:向左移動一個字符。j | ↓
:向下移動一個字符。k | ←
:向上移動一個字符。l | →
:向右移動一個字符。0 (零)
:光標移至當前行行首。$ | End
:光標移至當前行行尾。w
:一個單詞一個單詞的移動。
-
插入模式(先按 Esc 鍵進入交互模式)
i
:在光標前插入。I
:在光標當前行首插入。a
:在光標后插入。A
:在光標當前行尾插入。o
:在光標下插入一行。O
:在光標上插入一行。s
:刪除光標所在字符並在光標前插入。S
:刪除光標所在行並插入。
-
命令模式(先按 Esc 鍵進入交互模式)
:
:進入命令模式。:w [文件名]
:保存。:wq | :x [文件名]
:保存並退出。:q
:退出。:q!
:不保存退出。- 選項參數
:set nu
:顯示行號。:set nonu
:隱藏行號。
-
可視模式(先按 Esc 鍵進入交互模式)
v
:字符可視模式。V
:行可視模式。Ctrl v
:塊可視模式。- 以上相當於批量選中字符,配合刪除復制修改等操作。
u
:選中字符轉小寫。U
:選中字符轉大寫。
2.3、標准操作
在交互模式下操作。
-
刪除
x
:刪除光標處字符。數字x
:刪除從光標處字符開始,往后N個數字的字符。dd
:刪除光標所在行 (剪切)。數字dd
:刪除從光標所在行,往后N行字符。dw
:光標移至單詞首字母刪除單詞,若光標在單詞中間則刪除光標處及后面所有字符。數字dw
:刪除從光標處單詞開始,往后N個數字的單詞。d0
:刪除從光標處到行首的所有字符。d$
:刪除從光標處到行末的所有字符。
-
復制
yy
:復制光標所在行。yw
:復制一個單詞。y0
:復制從光標所在處到行首的所有字符。y$
:復制從光標所在處到行末的所有字符。
-
粘貼
p
:粘貼到光標后面。數字p
:粘貼數字次。
-
替換
r新字符
:替換光標處字符。R
:替換模式,替換光標處開始任意個字符,ESC 鍵退出替換模式。
-
撤銷
u
:撤銷。數字u
:撤銷數字次。Ctrl r
:取消撤銷、返回。
-
跳轉
數字G | 數字gg
:跳轉指定行。gg
:跳轉首行。G
:跳轉底行。
2.4、高級操作
在交互模式下操作。
-
查找
/
:從當前光標處開始,向文件尾搜索;輸入查找的字符串,回車,光標跳至匹配處;n 下一個匹配,N 上一個匹配。?
:從當前光標處開始,向文件頭搜索;其它與 / 一樣。
-
替換
:s/舊字符串/新字符串
:替換光標所在行第一個匹配的字符串。:s/舊字符串/新字符串/g
:替換光標所在行所有匹配的字符串。:#,# s/舊字符串/新字符串/g
:替換第#行至第#行所有匹配的字符串。:%s/舊字符串/新字符串/g
:替換所有匹配的字符串。
-
合並
:r 文件名
:光標處插入一個文件的內容。
-
分屏
:sp [文件]
:橫向分屏。:vsp [文件]
:垂直分屏。Ctrl w w
:切換分屏,同一行默認從上往下,從左往右。Ctrl w 方向鍵
:按指定方向切換分屏。Ctrl w +
:擴大當前分屏。Ctrl w =
:均勻分配所有分屏比例。Ctrl r
:調換分屏位置。Ctrl R
:反向調換分屏位置。Ctrl w q|c
:關閉當前分屏。:quit | :close
:關閉當前分屏。Ctrl w o
:保留當前分屏,關閉其它分屏。:only
:保留當前分屏,關閉其它分屏。
-
其它
:!命令
:運行 Vim 外部命令 (終端命令),按回車或輸入命令來繼續。
2.5、配置文件
-
配置方式
- 激活或不激活選項參數,文檔:http://vimdoc.sourceforge.net/htmldoc
- 安裝插件,官網:https://www.vim.org/scripts/index.php
-
短暫配置
打開 Vim 后,在命令模式下激活選項參數,這些激活都是一次性的,再次打開 Vim 就沒有了。
:set 選項名
:激活配置:set 選項名=數值
:激活配置:set no選項名
:取消配置
-
永久配置
修改了配置文件后,須保存並退出文件,再重新運行 Vim,使用最新配置。
- 全局 Vim 配置,
/etc/vimrc
- 個人 Vim配置,
cp /etc/vimrc ~/.vimrc
可能有的選項參數已經存在也已經被激活,前面沒有 " (雙引號)。
可能有的選項參數已經存在但沒有被激活,前面有 " (雙引號)。
可能有的選項參數還沒存在,添加即可。 - 全局 Vim 配置,
-
常用選項
syntax on
:(默認) 語法高亮,根據不同的文件類型。set number
:顯示行號。set showcmd
:顯示當前命令。set ignorecase
:查找時忽略大小寫。set mouse=a
:激活鼠標,用鼠標選擇一段文本則激活可視模式。
vim /home/.vimrc
if v:lang =~ "utf8$" || v:lang =~ "UTF-8$" set fileencodings=ucs-bom,utf-8,latin1 endif set nocompatible " Use Vim defaults (much better!) set bs=indent,eol,start " allow backspacing over everything in insert mode "set ai " always set autoindenting on " than 50 lines of registers set history=50 " keep 50 lines of command line history set ruler " show the cursor position all the time "自定義配置================================ " = set number "顯示行號 = set showcmd "顯示當前命令 = set ignorecase "查找時忽略大小寫 = set mouse=a "激活鼠標 = " = "========================================== " Only do this part when compiled with support for autocommands if has("autocmd") augroup redhat autocmd! " In text files, always limit the width of text to 78 characters " autocmd BufRead *.txt set tw=78 " When editing a file, always jump to the last cursor position autocmd BufReadPost * \ if line("'\"") > 0 && line ("'\"") <= line("$") | \ exe "normal! g'\"" | \ endif " don't write swapfile on most commonly used directories for NFS mounts or USB sticks " start with spec file template autocmd BufNewFile *.spec 0r /usr/share/vim/vimfiles/template.spec augroup END endif if has("cscope") && filereadable("/usr/bin/cscope") set csprg=/usr/bin/cscope set csto=0 set cst set nocsverb " add any database in current directory if filereadable("cscope.out") cs add $PWD/cscope.out " else add database pointed to by environment elseif $CSCOPE_DB != "" cs add $CSCOPE_DB endif set csverb endif " Switch syntax highlighting on, when the terminal has colors " Also switch on highlighting the last used search pattern. if &t_Co > 2 || has("gui_running") syntax on set hlsearch endif filetype plugin on if &term=="xterm" set t_Co=8 set t_Sb=^[[4%dm set t_Sf=^[[3%dm endif " Don't wake up system with blinking cursor: " http://www.linuxpowertop.org/known.php let &guicursor = &guicursor . ",a:blinkon0"