歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Vim學習教程之基礎篇

Vim學習教程之基礎篇

日期:2017/2/28 14:26:55   编辑:Linux教程

作為一名開發者,你不應該把時間花費在考慮如何去找你所要編輯的代碼上。在我轉移到完全使用 VIM 的過程中,感到最痛苦的就是它處理文件的方式。從之前主要使用 Eclipse 和 Sublime Text 過渡到 VIM,它沒有捆綁一個常駐的文件系統查看器對我造成了不少阻礙,而其內建的打開和切換文件的方式總是讓我淚流滿面。

就這一點而言,我非常欣賞VIM文件管理功能的深度。在工作環境上我已經裝配了這些工具,甚至比起那些視覺編輯器好很多。因為這個是純鍵盤操作,可以讓我更快地在代碼裡面穿梭。搭建環境需要花費一些時間,安裝幾個插件。首先第一步是我明白vim內建功能只是處理文件的一種選擇。在這篇文章裡我會帶你去認識vim文件管理功能與使用更高級的插件。

--------------------------------------分割線 --------------------------------------

把VIM打造成一個簡單實用的IDE http://www.linuxidc.com/Linux/2011-06/37032.htm

Vim學習指南 http://www.linuxidc.com/Linux/2013-08/89096.htm

快速學會 Vi編輯器 http://www.linuxidc.com/Linux/2013-08/88586.htm

強大的Vim 編輯器 http://www.linuxidc.com/Linux/2013-07/87544.htm

在CentOS 6.2上搭建Vim開發環境 http://www.linuxidc.com/Linux/2013-07/87363.htm

CentOS 5.4 安裝高亮Vim編輯工具 http://www.linuxidc.com/Linux/2013-06/86508.htm

Vim技巧分享:C語言設置 http://www.linuxidc.com/Linux/2012-12/77124.htm

Ubuntu中設置Vim的行號 http://www.linuxidc.com/Linux/2012-12/75485.htm

Vim編輯器使用基礎教程 http://www.linuxidc.com/Linux/2013-05/84031.htm

--------------------------------------分割線 --------------------------------------

基礎篇:打開新文件

學習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的一個好資源。這個屏幕截圖與一些內置工作流程很好地描述了之前說的文件操作方面的知識。

Copyright © Linux教程網 All Rights Reserved