日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

Linux--vim的使用

發布時間:2025/3/20 linux 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux--vim的使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

1、概述:

Vim 是從 vi 發展出來的一個文本編輯器。具有代碼補全、編譯及錯誤跳轉等功能

2、vim編輯器的常用命令:

?圖源:https://vimsky.com/article/1894.html

2.1 vim鍵盤圖:

2.2 vim的三種模式:

圖源:https://www.runoob.com/linux/linux-vim.html

3、vim的環境設置參數:

(在一般命令模式下的常用操作):

:set nu
:set nonu
設置與取消行號顯示
:set hlsearch
:set nohlsearch
hlsearch就是 high light search(高亮度搜尋)。這個就是設置是否將搜尋的字串反白的設置值。默認值是 hlsearch
:set autoindent
:set noautoindent
是否自動縮排?autoindent就是自動縮排
:set backup是否自動儲存備份文件?一般是 nobackup 的,如果設置 backup的話,那么當你更動任何一個文件時,則原始文件會被另存成一個文件名為filename~的文件。舉例來說,我們編輯 hosts,設置 :set backup,那么當更動 hosts時,在同目錄下,就會產生 hosts~文件名的文件,記錄原始的 hosts文件內容
:set ruler還記得我們提到的右下角的一些狀態列說明嗎?這個 ruler就是在顯示或不顯示該設置值的
:set showmode是否要顯示 --INSERT--之類的字眼在左下角的狀態列。
:set backspace=(012)一般來說,如果我們按下 i進入編輯模式后,可以利用倒退鍵 (backspace) 來刪除任意字符的。但是,某些 distribution則不許如此。此時,我們就可以通過 backspace 來設置啰~ 當backspace為 2時,就是可以刪除任意值;0或 1時,僅可刪除剛剛輸入的字符,而無法刪除原本就已經存在的文字了!
:set all顯示目前所有的環境參數設置值
:set?顯示與系統默認值不同的設置參數,一般來說就
是你有自行變動過的設置參數啦!
:syntax on
:syntax off
是否依據程序相關語法顯示不同顏色?舉例來說,在編輯一個純文本文件時,如果開頭是以 #
開始,那么該列就會變成藍色。如果你懂得寫程序,那么這個 :syntax on 還會主動的幫你除錯
呢!但是,如果你僅是編寫純文本,要避免顏色對你的屏幕產生的干擾,則可以取消這個設置。
:set bg=dark
:set bg=light
可用以顯示不同的顏色色調,默認是“ light”。如果你常常發現注解的字體深藍色實在很不容易看,那么這里可以設置為 dark

.vimrc的完整配置文件可參考github項目https://github.com/amix/vimrc

3.1 omnifunc設置:

注:與4.4一致

當使用vi 自動補全時 CTRL+x -> CTRL+o 報錯:omnifunc is not set

原因:vim默認情況下不啟用 Omni 補全。要打開全向補全,需要在你的.vimrc文件中加入如下語句:

filetype plugin on
set omnifunc=syntaxcomplete#Complete

注:~/.vimrc文件中默認注釋格式是"此為注釋內容"。

4、vim中的額外功能

4.1 區塊選擇(visual block)

#實現整個區塊的復制、選擇、移動、操作
v 字符選擇,會將光標經過的地方反白選擇!
V 列選擇,會將光標經過的列反白選擇!
[Ctrl]+v 區塊選擇,可以用長方形的方式選擇數據
y 將反白的地方復制起來
d 將反白的地方刪除掉
p 將剛剛復制的區塊,在光標所在處貼上!

4.2 多文件編輯

#同時編輯多個文件
#vim后接多個文件名
:n 編輯下一個文件
:N 編輯上一個文件
:files 列出目前這個 vim的打開的所有文件

4.3 多窗口功能

#在命令行界面輸入“:sp {filename}”即可!那個filename可有可無。
#如果想要在新窗口啟動另一個文件,就加入文件名,否則僅輸入:sp時,出現的則是同一個文件在兩個窗口間!
#用[ctrl]+w+↑”及“[ctrl]+w+↓”在兩個窗口之間移動
:sp [filename]
#打開一個新窗口,如果有加 filename, 表示在新窗口打開一個新文件,否
#則表示兩個窗口為同一個文件內容(同步顯示)。
[ctrl]+w+j或[ctrl]+w+↓
#按鍵的按法是:先按下 [ctrl]不放,再按下 w后放開所有的按鍵,然后再
#按下 j(或向下方向鍵),則光標可移動到下方的窗口。
[ctrl]+w+k或[ctrl]+w+↑
#同上,不過光標移動到上面的窗口。
[ctrl]+w+q
#其實就是 :q結束離開啦!舉例來說,如果我想要結束下方的窗口,
#那么利用 [ctrl]+w+↓ 移動到下方窗口后,按下 :q 即可離開, 也可以按下
#[ctrl]+w+q啊!

4.4 vim的挑字補全功能

#程序語言的語法以及特定的語法關鍵字的補全
[ctrl]+x -> [ctrl]+n #通過目前正在編輯的這個“文件的內容文字”作為關鍵字,予以補齊
[ctrl]+x -> [ctrl]+f #以當前目錄內的“文件名”作為關鍵字,予以補齊
[ctrl]+x -> [ctrl]+o #以擴展名作為語法補充,以 vim內置的關鍵字,予以補齊

5、關于Linux中的換行問題:

參考:"\n,\r,\r\n"的區別

回車、換行的區別
在Windows中:

‘\r’ (回車):即將光標回到當前行的行首(而不會換到下一行),之后的輸出會把之前的輸出覆蓋

‘\n’ 換行,換到當前位置的下一位置,而不會回到行首;

Unix系統里,每行結尾只有“<換行>”,即"\n";

Windows系統里面,每行結尾是“<回車><換行>”,即“\r\n”;

Mac系統里,每行結尾是“<回車>”,即"\r";

也就是說:

Linux中遇到換行符("\n")會進行回車+換行的操作,回車符(“\r”)反而只會作為控制字符("^M")顯示,不發生回車的操作。
而windows中要回車符+換行符("\r\n")才會回車+換行,缺少一個控制符或者順序不對都不能正確的另起一行。
一個直接后果是:

Unix/Mac系統下的文件在Windows里打開的話,所有文字會變成一行;
Windows里的文件在Unix/Mac下打開的話,在每行的結尾可能會多出一個^M符號。

因為斷行字符以及 DOS與 Linux操作系統下面一些字符的定義不同,因此,不
建議在 Windows系統當中將文件編輯好之后,才上傳到 Linux系統,會容易發生錯誤
問題。

5.1 斷行符轉換:

解決方法:使用DOS與UNIX字符轉換命令unix2dos?和?dos2unix

類似的還有?mac2unix,?unix2mac?適用于mac系統和unix系統編碼轉換;?

字符轉換命令一般默認沒有安裝,因此使用時需要自行安裝:

查看命令

yum -y install [需要安裝的命令*]
su #使用root權限
yum -y install unix2dos*
yum -y install dos2unix*
#DOS編碼轉為UNIX編碼
dos2unix filename newfile
#UNIX編碼轉DOS編碼
unix2dos filename newfile
#選項與參數
-k :保留該文件原本的 mtime時間格式(不更新文件上次內容經過修訂的時間)
-n :保留原本的舊文件,將轉換后的內容輸出到新文件,如:dos2unix -n old new
#有些機器上沒有安裝dos2unix命令,也可以使用vim命令修改編碼
vim filename
#vim打開文件后執行下列命令即可轉為unix編碼
:set fileformat=unix

6、vim中的編碼問題:

需要注意如果你的文件是使用?ANSI碼編碼制作的,但在 vim的終端接口中你使用的是萬國碼(utf8)

由于編碼的不同,你的中文文件內容當然就是一堆亂碼了

1.你的 Linux系統默認支持的語系數據:這與?/etc/locale.conf有關;

2.你的終端接口(bash)的語系:這與?LANG, LC_ALL這幾個變量有關;

3.你的文件原本的編碼;

4.打開終端機的軟件,例如在?Terminal下面的窗口接口。事實上最重要的是第三與第四點,

只要這兩點的編碼一致,你就能夠正確的看到與編輯你的中文文件。否則就會看到一堆亂碼啦!

編輯?~/.vimrc文件,插入以下內容,更改編碼相關信息。

set encoding=utf-8
set termencoding=utf-8
set fileencoding=utf-8
set fileencodings=ucs-bom,utf-8,cp936,gb18030
set imcmdline
source $VIMRUNTIME/delmenu.vim
source $VIMRUNTIME/menu.vim

注:關于vim中的編碼問題:https://www.jianshu.com/p/44691357c8ee

6.1 編碼語系轉換:iconv命令

選項與參數

-f 輸入編碼
-t 輸出編碼
-c 忽略不可轉換的字符
--unicode-subst=FORMATSTRING 替代不可轉換的 Unicode 字符
--byte-subst=FORMATSTRING 替代不可轉換的字節
--widechar-subst=FORMATSTRING 替代不可轉換的寬字符
-s 不顯示有關轉換出錯的信息
-l 列出支持的編碼
--version 顯示版本信息并退出
#使用:iconv -f ENCODING -t ENCODING INPUTFILE

作者:相遂

?

?

總結

以上是生活随笔為你收集整理的Linux--vim的使用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。