Linux中國

學習VIM之2014

基礎篇:打開新文件

學習vim其中最大的一個障礙是缺少可視提示,不像現在的GUI圖形編輯器,當你在終端打開一個新的vim是沒有明顯的提示去提醒你去走什麼,所有事情都是靠鍵盤輸入,同時也沒有更多更好的界面交互,vim新手需要習慣如何靠自己去查找一些基本的操作指令。好吧,讓我開始學習基礎吧。

創建新文件的命令是:e 或:e 打開一個新緩衝區保存文件內容。如果文件不存在它會開闢一個緩衝區去保存與修改你指定文件。緩衝區是vim是術語,意為"保存文本塊到內存"。文本是否能夠與存在的文件關聯,要看是否每個你打開的文件都對應一個緩衝區。

打開文件與修改文件之後,你可以使用:w命令來保存在緩衝區的文件內容到文件裡面,如果緩衝區不能關聯你的文件或者你想保存到另外一個地方,你需要使用:w 來保存指定地方。

這些是vim處理文件的基本知識,很多的開發者都掌握了這些命令,這些技巧你都需要掌握。vim提供了很多技巧讓人去深挖。

緩衝區管理

基礎掌握了,就讓我來說更多關於緩衝區的東西,vim處理打開文件與其他編輯器有一點不同,打開的文件不會作為一個標籤留在一個可見的地方,而是只允許你同時只有一個文件在緩衝區打開,vim允許你打開多個緩存區。一些會顯示出來,另外一些就不會,你需要用:ls來查看已經打開的緩存,這個命令會顯示每個打開的緩存區,同時會有它們的序號,你可以通過這些序號使用:b 來切換或者使用循序移動命令 :bnext:bprevious 也可以使用它們的縮寫:bn:bp

這些命令是vim管理文件緩衝區的一個基礎,我發現他們不會按照我的想法映射出來。我不想關心緩衝區的順序,我只想按照我的想法去到那個文件或者想在當前這個文件.因此必需了解vim更深入的緩存模式,我不是推薦你必須用內部命令來作為主要的文件管理方案。但這些的確是很強大可行的選擇。

分屏

分屏是vim其中一個最好用的管理文件功能,在vim中你可以將當前窗口同時分開為2個窗口,可以按照你喜歡的配置去重設大小和分配,個別時候,我可以在同時打開6文件每個文件,每個都擁有不同大小。

你可以通過命令:sp 來新建水平分割窗口或者 :vs 垂直分割窗口。你可以使用這些關鍵命令去調整你想要的窗口大小,老實說,我喜歡用滑鼠處理vim任務,因為滑鼠能夠給我更加準確的兩列的寬度而不需要猜大概的寬度。

創建新的分屏後,你需要使用ctrl-w [h|j|k|l]來向後向前切換。這個有一點笨拙,但這個卻是很重要、很普遍、很容易、很高效的操作。如果你經常使用分屏,我建議你去.vimrc使用以下代碼去設置別名為ctrl-h ctrl-j 等等。

nnoremap <C-J> <C-W><C-J> "Ctrl-j to move down a split  
nnoremap <C-K> <C-W><C-K> "Ctrl-k to move up a split  
nnoremap <C-L> <C-W><C-L> "Ctrl-l to move    right a split  
nnoremap <C-H> <C-W><C-H> "Ctrl-h to move left a split  

跳轉表

分屏是解決多個關聯文件同時查看問題,但我們仍然不能解決已打開文件與隱藏文件之間快速移動問題。這時跳轉表是一個能夠解決的工具。

跳轉表是眾多插件中看起來奇怪而且很少使用的一個。vim能夠追蹤每一步命令還有切換你正在修改的文件。每次從一個分屏窗口跳到另外一個,vim都會添加記錄到跳轉表裡面。它記錄你去過的地方,這樣就不需要擔心之前的文件在哪裡,你可以使用快捷鍵去快速追溯你的蹤跡。Ctrl-o允許你返回你上一次地方。重複操作幾次就能夠返回到你最先編寫的代碼段地方。你可以使用ctrl-i來向前返回。當你在調試多個文件或在兩個文件之間切換時,它能夠發揮極大的快速移動功能。

插件

如果你想vim像Sublime Text 或者Atom一樣,我就讓你認清一下,這裡有很好的機會讓你看清一些難懂,可怕和低效的事情。例如大家會發出"當Sublime有了模糊查找功能,為什麼我一定要輸入全路徑才能夠打開文件" "沒有側邊欄顯示目錄樹我怎樣查看項目結構" 等等。但vim有了解決方案。這些方案不需要破壞vim的核心。我只需要經常修改vim配置與添加一些最新的插件,這裡有3個有用的插件可以讓你像Sublime管理文件

  • CtrlP 是一個跟Sublime的"Go to Anything"欄一樣模糊查找文件.它快如閃電並且非常可配置性。我使用它主要用來打開文件。我只需知道部分的文件名字不需要記住整個項目結構就可以查找了。
  • The NERDTree 這個一個文件管理夾插件,它重複了很多編輯器都有的側邊文件管理夾功能。我實際上很少用它,對於我而言模糊查找會更加快。對於你接手一個項目,嘗試學習項目結構與了解什麼可以用是非常方便的,NERDTree是可以自己定製配置,安裝它能夠代替vim內置的目錄工具。
  • Ack.vim 是一個專為vim的代碼搜索插件,它允許你跨項目搜索文本。它封裝了Ack 或 Ag 這兩個極其好用的搜索工具,允許你在任何時候在你項目之間快速搜索跳轉。

在vim核心與它的插件生態系統之間,vim 提供足夠的工具允許你構建你想要得工作環境。文件管理是軟體開發系統的最核心部分並且你值得擁有體驗的權利。

開始時需要通過很長的時間去理解它們,然後在找到你感覺舒服的工作流程之後再開始在上面添加工具。但依然值得你去使用,你不用爆頭就可以理解如何去使用,能夠輕易編寫你的代碼。

更多插件資源

  • Seamlessly Navigate Vim & Tmux Splits 這個插件需要每一個想使用它的人都要懂得使用tmux,這個跟vim的splits 一樣簡單好用。
  • Using Tab Pages 它是一個vim的標籤功能插件,雖然它的名字用起來有一點疑惑,但它不是文件管理器。對如何在有多個工作可視區使用"tab pages" 在vim wiki 網站上有更好的概述。
  • Vimcasts: The edit command 一般來說 Vimcasts 是大家學習vim的一個好資源。這個屏幕截圖與一些內置工作流程很好地描述了之前說的文件操作方面的知識。

via: http://benmccormick.org/2014/07/07/learning-vim-in-2014-working-with-files/

作者:Ben McCormick 譯者:haimingfg 校對:wxy

本文由 LCTT 原創翻譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的電子郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國