最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

Vim的基礎使用

2023-01-18 10:58 作者:汐時渡  | 我要投稿

vim是一個基于vi開發(fā)的編程工具,它被設計為可移植的,最終,古老的vi在九十年代被更現(xiàn)代的vim取代,在任何現(xiàn)代的*nix發(fā)行版中你都可以見到vim(這包括OSX)。
在漫長的時間中,vim的靈活性造就了許許多多的預配置,這包括SpaceVim,NvChad,SonarLint,AstroNvim及LunarVim。值得注意的是,裝載了不同預配置的vim與不同的vim版本是不同的。neovim在使用上與vim沒有太大的區(qū)別,它只是重寫了大量的冗余代碼并且添加了更多現(xiàn)代的特性——這些變化使vim變得更靈活,其中vimscript被lua所取代,這成為了大量的nvim預配置開發(fā)的關鍵——不得不說,neovim更順手一點。
本文使用LunarVim編撰,它是一個在neovim上運行的IDE層,由lua腳本提供支持。(它的開發(fā)者將它簡稱為lvim)

vim基礎概念
vim和它的對手emacs有些不同,它很少使用快捷鍵,取而代之的是獨特的CommondMode。
依照慣例,在首頁按n進入命令行模式,按i進入插入模式,開始編撰你文件的內(nèi)容。在ESC+:后,你會在屏幕下方看到一個小窗口,現(xiàn)在,按下w并輸入你的文件的名字,然后wq保存它,你就完成了一篇文檔的編寫。
在之后的篇幅中,我們將簡單地了解vim的使用(或者說,對于使用預配置方案vim的用戶來說,插件的使用在你方案的官網(wǎng)的手冊中都可以找到——更何況預配置的插件已經(jīng)很好用了——而原生vim的插件管理策略令人頭疼,對于vim自定義命令,只需要知道esc換成雙擊space或者jk即可)。
以及非常重要的一點,vim接受的輸入不是直接監(jiān)控鍵盤的硬件輸入,而是通過系統(tǒng)所定義的IM,在英文環(huán)境下當然沒有切換輸入法的需要,但對于中文輸入,vim的命令只支持英文,如果出現(xiàn)vim沒有反應的情景,請檢查你的輸入法和自定義熱鍵及命令。

寫在最前面:關于w,q,!和三種模式。
w,write,寫
q,quit,退出
!,強制的
在vim中,q!的意義為不保存并強制退出,wq的意義為寫入并退出,wq!表示寫入并強制退出,w后跟文件名,表示為文件命名。
vim具有三種模式,但在實際使用中通常只分為兩種:InsertMode與CommondMode。(CommondMode與LastLineMode統(tǒng)稱為CommondMode)
直接打開vim,你會看到幾行經(jīng)典的提示,我們按n進入CommondMode,再按i進入InsertMode,在使用ESC退后到CommondMode后輸入:進入LastLineMode。(日常中,在終端中直接輸入vim,后接文件路徑即可)

A1,關于i,a,o。
命令行下,按i,從光標位置進入編輯,按a,從光標后一個字符開始進入編輯,按o,則從光標所在位置的下一行開始進入編輯。
A2,關于方向鍵。
原則上,vim在LastLineMode下使用hjkl來控制光標,但你也可以使用自帶的方向鍵。
A3,關于A。
無論光標在何處,按A強制將輸入位置移至行末。
A4,關于d。
d后跟w,則將光標后一個單詞刪除,d后跟e則忽略光標后空格,d后跟$將從光標處一直刪除到行末,特別地,d[number]w將刪除光標后[number]個單詞。
(如果你想刪除一整行文字,則可以在0后跟d$,它的作用是將光標移至行首,然后刪除光標后內(nèi)容直至行末,當然,你也可以使用作用相同的dd,刪除當前行則dd,連續(xù)刪除[number]行則[number]dd)
A5,關于u。
u是悔棋命令,u撤銷上一步的操作,U則撤銷整行的更改,ctrl+r會將上一步的撤銷撤銷。
A6,關于剪切操作。
vim有一個被稱為寄存器的機制,你對文件的更改并不會即時寫入磁盤,而是會滯留在緩存中,因而,使用d*命令后在當前光標處使用p則可以將內(nèi)容移至光標后。
A7,關于r。
在光標后的字符將會在使用r命令后被替換為你輸入的字符。
A8,關于g。
ctrl+g,輸入gg則跳轉(zhuǎn)至頂行,輸入G則跳轉(zhuǎn)至尾行,輸入[number]+G則跳轉(zhuǎn)至[number]行。

B1,關于查詢命令。
/后輸入查詢字符串,按n查找下一個,按N查找上一個。當括號的某一邊在光標處時,按%將會找到括號的另一半。
B2,關于s-g。
對于光標所在行,s/[old]/[new]/g將會將[old]替換為[new]。特別地,在該命令前加入代表特定行行數(shù)的字符,它將會將特定行數(shù)行之內(nèi)的[old]替換為[new],語法為[number1],[number2]s/[old]/[new]/g。當需要對全文進行替換操作時,有兩種情形,也即需要確認是否替換每個匹配項和直接全部替換,對于前者,%s/[old]/[new]/g,對于后者,%s/[old]/[new]/gc。

C,關于分屏。
sp后跟文件名將會將你的vim分為上下兩個部分,第二個屏幕將顯示你剛剛打開的新文件,類似地,vsp將會將你的vim分為左右兩部分。

sview是特別的,它將以只讀模式打開文件。

以及,vim的分屏有著直接從terminal開始的命令,格式為vim -O/o [number] <files1><files2>...<files number>,大寫O將會左右分開你的屏幕,而小寫o則上下分開。

光標所停留界面的分屏長寬可以使用ctrl+w>/<[number]來調(diào)整,>加寬<縮減+增高-變矮,[number]缺省為1。在ctrl+w后跟方向鍵可以切換分屏,對于互換分屏位置,使用ctrl+w+r,將r替換為c則可以關閉窗口,對于其他的參數(shù),q會在只有一個分屏存在時關閉vim。

對于分屏時的其他命令,only只會保留當前分屏,hide則會關閉當前分屏,res[number]會指定當前高度為[number]。

##vim的高度與寬度使用字高與字寬衡量,在不同環(huán)境上是不統(tǒng)一的。

某些git插件會利用這一機制可視化你對文件的更改,對于這些需求,建議你使用更現(xiàn)代的工具,例如vsc和sublime。

D,關于vimdiff和vimtutor。

diff是一份說明書,它將教會你vim的簡單使用,vimtutor是一份教程,它將在你動過很多次手之后矯正你的不良習慣。(而且它們都是內(nèi)置的)

關于vimscript的學習,你可以在官網(wǎng)找到文檔,但我仍建議你使用現(xiàn)代化的lua,vimscript簡直是一片稀爛。

(我覺得vsc真的比vim好用多了

Vim的基礎使用的評論 (共 條)

分享到微博請遵守國家法律
彭泽县| 林甸县| 公安县| 长乐市| 青海省| 乐平市| 老河口市| 冀州市| 舒城县| 淮阳县| 托克逊县| 天气| 锦屏县| 恭城| 蚌埠市| 茶陵县| 石泉县| 芜湖市| 白沙| 陵川县| 华安县| 井研县| 乐亭县| 罗甸县| 上思县| 大连市| 德昌县| 晋宁县| 龙泉市| 临城县| 屯门区| 白银市| 密山市| 晋中市| 桦南县| 武夷山市| 应城市| 互助| 宁陵县| 平谷区| 临泉县|