VIM編輯器學習

2020-12-13 電子產品世界
Vim是一個類似於Vi的文本編輯器,不過在Vi的基礎上增加了很多新的特性,Vim普遍被推崇為類Vi編輯器中最好的一個,事實上真正的勁敵來自Emacs的不同變體。 

VIM學習方法

本文引用地址:http://www.eepw.com.cn/article/151642.htm

  Vim目前已經有類Unix版和Windows版,儘管vim較vi已經改良了不少,但是初次使用還是會一頭霧水,不知如何操作,所以學習vim要首先過2關。第一關是理解vim的設計思路,vim設計之初就是整個文本編輯都用鍵盤而非滑鼠來完成,鍵盤上幾乎每個鍵都有固定的用法,且vim的製作者希望用戶在普通模式(也就是命令模式,只可輸入命令)完成大部分的編輯工作,將此模式設計為默認模式,初學者打開vim,如果直接輸入單詞,結果就會滴滴亂響,這是因為vim把用戶輸入的單詞理解為命令了。第二關是命令關,vim有過百條命令對應編輯的需要,如果能熟練使用vim這些命令,編輯速度確實比滑鼠要快很多,但是想全都記住它們也是一件難事,我想記住它們最好的方法就是多多來練習,確實把vim用在日常的文本編輯中去,且遇到難題不要放棄,而是查找解決的方法,每解決一個難題,你的vim技能就上升一級。

  其實, Vim與其它編輯器一個很大的區別在於, 它可以完成複雜的編輯與格式化功能. 在這些領域還少有軟體能與它分庭抗禮, 但是, 與所有的靈活性的代價一樣, 你需要用自己的雙手來實現它. 這在事實上造成了用戶在使用Vim過程中的幾個自然階段.

  一開始是notepad, word, edit壟斷你的大腦, 這些東西根深蒂固, 揮之不去Vim的使用對你而言是一場噩夢, 它降低而不是提高了你的工作效率. 對三種工作模式的不解甚至使你認為它是一個充滿BUG或者至少是一個古怪的與當今友好用戶界面設計嚴重脫節的軟體. 事實上, 這些起初看起來古怪的特性是Vim(或者是vi)的作者和它的用戶們在自己漫長的文字編輯和程序設計生涯中總結出來的最快速最實在的操作, 在幾乎等於計算機本身歷史的成長期中, 歷經無數嚴厲苛刻的計算機用戶的批評與檢驗, 無用的特性或糟糕的設計在Vim用戶群面前根本就沒有生存的餘地. Vim細心而謹慎的作者們也不允許自己精心設計的軟體裡有這樣東西.第二個階段你開始熟悉一些基本的操作, 這些操作足以應付你日常的工作, 你使用這些操作時根本就不假思索. 但這些階段你仍然很少去碰Vim那晦澀的在線幫助文檔. 它在你心裡只是notepad, edit一個勉強合格的替代品.

  第三個階段, 精益求精的你不滿足於無休無止的簡單操作, 冗長而乏味,有沒有更好的辦法可以四兩拔斤. 於是, 從UNIX參考手冊上, 從同事口中, 你漸漸叩開:help xxx的大門. 開始探索裡面充滿魔力的咒語. 從雜耍般的帶有表演性質的技巧開始, 這些技巧令人眩目但少有實用性. 不過這卻是你擁有魔力的第一步. 接下來, 你開始認識到這些咒語背後的真經, 開始偷偷修改一些奇怪的符號, 於是, 奇蹟產生了, 魔力不但仍然有效, 而且真實地作用於你現實中的文字編輯生活. 你在第二階段由於熟練操作而塵封已久的大腦突然開始運作. 但這個過程並非是達到某個臨界狀態後的一路坦途, 不斷的挫折, 新的挑戰, 看似Mission Impossible的任務.永遠伴隨著任何一個人的任何一個學習過程. 這是你使用Vim的最後一個階段, 也是最漫長最有挑戰性同時也充滿無數奇趣的階段. 這個階段裡你開始定製一些希奇古怪的顏色. 開始以敲入i18n來輸入internationalization, 開始讓Vim替你糾正經常把the 誤敲成teh的毛病, 開始讓Vim與系統裡各種精悍而強大的兄弟工具進行合作, 開始寫越來越長的script, 每一次的文本編輯體驗都妙趣橫生高潮跌起. 你的頭腦因為要用Vim完成高效的編輯而高度緊張. 你開始在Vim郵件列表裡提一些確實是問題的問題. 也開始發現你在Vim裡做了以前在SHELL裡做的幾乎一切事. 事實上你已經成了一個無可救藥的Vim骨灰級玩家.

  高效率移動

  1、在插入模式之外

  基本上來說,你應該儘可能少的呆在插入模式裡面,因為在插入模式裡面 VIM 就像一個「啞巴」編輯器一樣。很多新手都會一直呆在插入模式裡面,因為這樣易於使用。但 VIM 的強大之處在於他的命令行模式!你會發現,在你越來越了解 VIM 之後,你就會花越來越少的時間使用插入模式了。

  2、使用 h、j、k、l

  使用 VIM 高效率編輯的第一步,就是放棄使用箭頭鍵。使用 VIM,你就不用頻繁的在箭頭鍵和字母鍵之間移來移去了,這會節省你很多時間。當你在命令模式時,你可以用 h、j、k、l 來分別實現左、下、上、右箭頭的功能。一開始可能需要適應一下,但一旦習慣這種方式,你就會發現這樣操作的高效之處了。

  在你編輯你的電子郵件或者其他有段落的文本時,你可能會發現使用方向鍵和你預期的效果不一樣,有時候可能會一次跳過了很多行。這是因為你的段落在 VIM 看來是一個大的長長的行。這時你可以在按 h、j、k 或者 l 之前鍵入一個 g,這樣 VIM 就會按屏幕上面的行如你所願的移動了。

  3、在當前行裡面有效的移動光標

  很多編輯器只提供了簡單的命令來控制光標的移動(比如左、上、右、下、到行首/尾等)。VIM 則提供了很多強大的命令來滿足你控制光標的欲望。當光標從一點移動到另外一點,在這兩點之間的文本(包括這兩個點)稱作被「跨過」,這裡的命令也被稱作是 motion。(簡單說明一下,後面會用到這個重要的概念)

  4、常用到的一些命令(motion)

  fx:移動光標到當前行的下一個 x 處。很明顯,x 可以是任意一個字母,而且你可以使用 ; 來重複你的上一個 f 命令。

  tx:和上面的命令類似,但是是移動到 x 的左邊一個位置。(這真的很有用)

  Fx:和 fx 類似,不過是往回找。

  w:光標往前移動一個詞。

  b:光標往後移動一個詞。

  0:移動光標到當前行首。

  ^:移動光標到當前行的第一個字母位置。

  $:移動光標到行尾。

  ):移動光標到下一個句子。

  ( :移動光標到上一個句子。

  5、在整個文件裡面有效移動光標

  VIM 有很多命令,可以用來到達文件裡面你想到達的地方。下面是一些在文件裡面移動的命令:

  :向下移動一屏。

  :向上移動一屏。

  G:到文件尾

  numG:移動光標到指定的行(num)。(比如 10G 就是到第 10 行)

  gg:到文件首

  H:移動光標到屏幕上面

  M:移動光標到屏幕中間

  L:移動光標到屏幕下面

  *:讀取光標處的字符串,並且移動光標到它再次出現的地方。

  #:和上面的類似,但是是往反方向尋找。

  /text:從當前光標處開始搜索字符串 text,並且到達 text 出現的地方。必須使用回車來開始這個搜索命令。如果想重複上次的搜索的話,按 n。

  ?text:和上面類似,但是是反方向。

  ma:在當前光標的位置標記一個書籤,名字為 a。書籤名只能是小寫字母。你看不見書籤的存在,但它確實已經在那裡了。

  `a:到書籤 a 處。注意這個不是單引號,它一般位於大部分鍵盤的 1 的左邊。

  `.:到你上次編輯文件的地方。這個命令很有用,而且你不用自己去標記它。

  高效的輸入

  1、使用關鍵詞自動完成

  VIM 有一個非常漂亮的關鍵詞自動完成系統。這表示,你可以輸入一個長詞的一部分,然後按一下某個鍵,然後 VIM 就替你完成了這個長詞的輸入了。舉個例子:你有一個變量名為 iAmALongAndAwkwardVarName 在你寫的代碼的某個地方。也許你不想每回都自己一個一個字母的去輸入它。

  使用關鍵詞自動完成功能,你只需要輸入開始幾個字母(比如 iAmAL),然後按 (按住 Ctrl,再按 N)或者 。如果 VIM 沒有給出你想要的詞,繼續按,直到你滿意為止,VIM 會一直循環它找到的匹配的字符串。

相關焦點

  • Vim 編輯器的兼容模式
    : Himanshu Arora譯者: ch-cn目前,在我們講述 Vim[1] 的教程中,討論過編輯器的模式行Modeline功能以及怎樣用插件[2]來擴展 Vim 的功能集。system vimrc file: "$VIM/vimrc"user vimrc file: "$HOME/.vimrc"2nd user vimrc file: "~/.vim/vimrc"user exrc file: "$HOME/.exrc"fall-back for $VIM: "/usr/share/vim"
  • Linux系列教程(十)——Linux文本編輯器vim
    當我們使用的多了,會不知不覺的記住這些命令,這才是正確的學習方法。Linux命令有很多,如果初學者就想全部記住這些命令的詳細格式,會對我們產生很大的學習挫敗性,還沒記完這些命令,或許你已經喪失了學習Linux的熱情了。結束了Linux常用命令的學習,接下來我們學習Linux最常用的文本編輯器命令 vim。
  • Linux下vim編輯器的使用小技巧
    Vim是Linux作業系統中最常用一個編輯器。如配置文件的更改、環境變量的設置等等基本上都是在這個vim編輯器上完成。所以這是Linux系統管理員最常用的一個工具。不過這個工具雖然小,但是其有很多的實用小技巧。有些系統管理員可能並不知道。
  • 遊戲夜讀|vim,vim,vim
    已經忘記第一次安裝vim是哪一年了,可能是幾年前;插件類的不算,去官網下載再安裝,這應該是第二次。歲月痕跡斑駁,心態還是沒有本質的變化,覺得這一類東西就是:酷。只是酷的東西,更需要時間和精力去營造合適的心情。而學習曲線這一類東西則只能是參考,基於興趣、剛需,再困難也能上。
  • vim常用命令有哪些?Linux入門學習
    vim是一個文本編輯程序,沒有菜單,只有命令,且命令繁多。在運維培訓學習中,vim編輯器都有哪些知識點?有哪些命令需要掌握?(vsp)+文件名水平或垂直拆分窗口顯示兩個不同的文件退出分屏模式命令:wqall保存並退出所有屏幕命令:wq保存並退出光標所在的屏幕Ctrl+ww切換兩個屏幕 vim
  • 遊戲夜讀|vim一份極簡手冊
    到了後來,出現了一個預覽窗口能看到全文的編輯器創想,於是全屏編輯時代來臨,vim就是這個時代的一個優秀代表。搜索,下載,安裝,接著雙擊打開vim,來到一個歡迎頁面。首先,學會避免以自我為中心:不要按鍵盤上的字母"i"。映入眼帘的歡迎頁面有幾行介紹,包括幾個輸入提示,比如:查看版本、幫助、退出。
  • Vim 起步的五個技巧
    如今 Vim 是我最喜歡的 Linux 文本編輯器,也是開發者和系統管理者最喜愛的開源工具。我說的學習,指的是真正意義上的學習。想要精通確實很難,所以我只想要達到熟練的水平。我使用了這麼多年的 Linux ,我會的也僅僅只是打開一個文件,使用上下左右箭頭按鍵來移動光標,切換到插入模式,更改一些文本,保存,然後退出。但那只是 Vim 的最最基本的操作。
  • vim命令使用總結
    vim簡介vim 是linux系統自帶的文本編輯器。vim 共有三種模式:命令模式:用vim打開文件就進入了命令模式;輸入模式:在命令模式輸入i/I/a/A/o/O就進入輸入模式;在輸入模式下按鍵esc,則退出輸入模式進入命令模式底線模式:在命令模式按下英文冒號:就進入了底線模式;二. vim
  • Vim,牛逼
    只不過,Vim 的學習曲線相當的大,這是一個連我都不得不承認的事實。就好像彈一把吉他,一開始學起來非常痛苦,簡直想摔了它,但學會後,就能感受到樂器的無限魅力,以及學妹崇拜的小眼神。來吧,下定決心擁抱它,沒有比它更好的文本編輯器了,非常地難學,但卻不可思議地好用。
  • 如何在使用 Vim 時訪問/查看 Python 幫助 | Linux 中國
    我是一名新的 Vim 編輯器用戶。我用它編寫 Python 代碼。有沒有辦法在 vim 中查看 Python 文檔而無需訪問網際網路?假設我的光標在 Python 的 print 關鍵字下,然後按下 F1,我想查看關鍵字 print 的幫助。如何在 vim 中顯示 python help() ?如何在不離開 vim 的情況下調用 pydoc3/pydoc 尋求幫助?
  • 初識Vi 文本編輯器 | Linux 中國
    可能每一個 Linux 和 BSD 發行版中都包含了 Vi,Vi 是一個輕量級的簡約型文本編輯器,由於其簡單簡潔的鍵盤快捷鍵和雙模式設計,很多用戶都喜歡它。  最初的 Vi 編輯器是由 的創建者 Bill Joy 編寫的應用程式。現代 Vi 的化身已經,包括多級撤銷、插入模式下更好的導航、行摺疊、語法高亮、插件支持等等。
  • linux-vi或vim命令
    vi編輯中中文亂碼,修改方法:set encoding=utf-8 或set encoding=utf8高級一些的編輯器,都會包含宏功能,vim當然不能缺少了,在vim中使用宏是非常方便的::qx 開始記錄宏,並將結果存入寄存器xq 退出記錄模式@x 播放記錄在x寄存器中的宏命令
  • 十大最受歡迎的 React Native 應用開發編輯器
    作者丨 Murtaza Basrai譯者 丨 安翔市面上用於開發工作的編輯器非常多,筆者會經常因為不同的程式語言該如何選擇好用的編輯器而感到糾結。而在隨後從事 React Native 開發工作過程中,對相應的編輯器做了一些探索和研究,本文總結了一些非常適合移動應用開發的編輯器和 IDE。1.
  • Vim 入門:基礎 | Linux 中國
    真正的程式設計師,來自 xkcd[1]學生們可以使用像 Kate[2] 一樣的圖形文本編輯器,這也安裝在學校的電腦上了。對於那些可以使用 shell 但不習慣使用控制臺編輯器的學生,最流行的選擇是 Nano[3],它提供了很好的交互式菜單和類似於 Windows 圖形文本編輯器的體驗。
  • vim+py文件構造linux後門
    答案是可以使用,現如今的vim編輯器為了更好的支持python語言,默認是安裝了python擴展,通過vim的python擴展,也可以去啟動一個python程序。可通過「vim --version」查看是否已支持python擴展。
  • Linux-vi編輯器之簡單常用命令
    Ubuntu下的VI編輯器的使用1.實驗知識點2.Vi編輯器的工作文件3.Vi編輯器下文本的保存與退出實驗步驟練習一:切換到root用戶:1.請在/root這個目錄下建立一個vitest的目錄;使用 vim 同時新建並編輯兩個文件 t1,t2命令:vim -o t1 t23.在兩個文件中分別輸入並保存文本內容命令:wq!4.把 t1 的第一行複製粘貼到 t2 的第二行命令:將光標移到t1的第一行,在命令模式下按住Ctrl+V並移動光標選中區域,Crtl+ww切換窗口到t2要複製的指定位置按住p鍵複製。
  • Vim學習筆記整理
    一、vim幾種模式:
  • 在VIM中實現對嵌入式軟體的調試
    其強大的gdb調試工具可以方便地對嵌入式平臺上的程序進行跟蹤調試;而Linux下強悍的VIM編輯器,不僅可以方便地調用make文件對代碼進行編譯,而且通過腳本的配置還可輕鬆地成為高效的代碼編輯環境。流傳著這樣一種說法,「世界上的程式設計師分三種,一種使用Emacs,一種使用VIM,剩餘的是其他。」
  • 淺談代碼編輯器的自動補全功能的實現
    我們都知道Visual Studio號稱宇宙第一編輯器,JetBrains號稱最好用的全家桶編輯器。那麼他們究竟好在哪裡?我想關於自動提示補全功能一定是它們一個不可或缺的亮點。而其中關於編輯器的自動補全功能,可以說是最偉大的發明或者說是進步了,有了它,程式設計師們敲起代碼來變得行雲流水。基本想法jquery我想稍微老一點的前端程式設計師都應該接觸過,在jquery中,有一個自動補全的插件jquery-autocomplete,它是怎麼實現的呢?
  • 成為Python大牛必不可少的幾款編輯器
    隨著Python的興起,其相關的IDE和Python編輯器,也隨之開始被人們開發出來。那麼哪些IDE和編輯器,真正被程式設計師和開發者們常用,並且受到大家一致好評的是哪些呢?如下將介紹Python的知名編輯器。1.Sublime Text