linux 網絡配置 阮一峰,Vim 配置入門

Vim 是最重要的編輯器之一,主要有下面幾個優點。

cb10e12dcd182bc1358d7accc1455f8e.png

可以不使用鼠標,完全用鍵盤操作。

系統資源占用小,打開大文件毫無壓力。

鍵盤命令變成肌肉記憶以后,操作速度極快。

服務器默認都安裝 Vi 或 Vim。

Vim 的配置不太容易,它有自己的語法,許許多多的命令。我總是記不清楚,所以就整理了下面這篇文章,列出主要配置項的含義。

一、基礎知識

Vim 的全局配置一般在/etc/vim/vimrc或者/etc/vimrc,對所有用戶生效。用戶個人的配置在~/.vimrc。

如果只對單次編輯啟用某個配置項,可以在命令模式下,先輸入一個冒號,再輸入配置。舉例來說,set number這個配置可以寫在.vimrc里面,也可以在命令模式輸入。

:set number

配置項一般都有"打開"和"關閉"兩個設置。"關閉"就是在"打開"前面加上前綴"no"。

" 打開

set number

" 關閉

set nonumber

上面代碼中,雙引號開始的行表示注釋。

查詢某個配置項是打開還是關閉,可以在命令模式下,輸入該配置,并在后面加上問號。

:set number?

上面的命令會返回number或者nonumber。

如果想查看幫助,可以使用help命令。

:help number

二、基本配置

(1)

set nocompatible

不與 Vi 兼容(采用 Vim 自己的操作命令)。

(2)

syntax on

打開語法高亮。自動識別代碼,使用多種顏色顯示。

(3)

set showmode

在底部顯示,當前處于命令模式還是插入模式。

(4)

set showcmd

命令模式下,在底部顯示,當前鍵入的指令。比如,鍵入的指令是2y3d,那么底部就會顯示2y3,當鍵入d的時候,操作完成,顯示消失。

(5)

set mouse=a

支持使用鼠標。

(6)

set encoding=utf-8

使用 utf-8 編碼。

(7)

set t_Co=256

啟用256色。

(8)

filetype indent on

開啟文件類型檢查,并且載入與該類型對應的縮進規則。比如,如果編輯的是.py文件,Vim 就是會找 Python 的縮進規則~/.vim/indent/python.vim。

三、縮進

(9)

set autoindent

按下回車鍵后,下一行的縮進會自動跟上一行的縮進保持一致。

(10)

set tabstop=2

按下 Tab 鍵時,Vim 顯示的空格數。

(11)

set shiftwidth=4

在文本上按下>>(增加一級縮進)、<

(12)

set expandtab

由于 Tab 鍵在不同的編輯器縮進不一致,該設置自動將 Tab 轉為空格。

(13)

set softtabstop=2

Tab 轉為多少個空格。

四、外觀

(14)

set number

顯示行號

(15)

set relativenumber

顯示光標所在的當前行的行號,其他行都為相對于該行的相對行號。

(16)

set cursorline

光標所在的當前行高亮。

(17)

set textwidth=80

設置行寬,即一行顯示多少個字符。

(18)

set wrap

自動折行,即太長的行分成幾行顯示。

set nowrap

關閉自動折行

(19)

set linebreak

只有遇到指定的符號(比如空格、連詞號和其他標點符號),才發生折行。也就是說,不會在單詞內部折行。

(20)

set wrapmargin=2

指定折行處與編輯窗口的右邊緣之間空出的字符數。

(21)

set scrolloff=5

垂直滾動時,光標距離頂部/底部的位置(單位:行)。

(22)

set sidescrolloff=15

水平滾動時,光標距離行首或行尾的位置(單位:字符)。該配置在不折行時比較有用。

(23)

set laststatus=2

是否顯示狀態欄。0 表示不顯示,1 表示只在多窗口時顯示,2 表示顯示。

(24)

set ruler

在狀態欄顯示光標的當前位置(位于哪一行哪一列)。

五、搜索

(25)

set showmatch

光標遇到圓括號、方括號、大括號時,自動高亮對應的另一個圓括號、方括號和大括號。

(26)

set hlsearch

搜索時,高亮顯示匹配結果。

(27)

set incsearch

輸入搜索模式時,每輸入一個字符,就自動跳到第一個匹配的結果。

(28)

set ignorecase

搜索時忽略大小寫。

(29)

set smartcase

如果同時打開了ignorecase,那么對于只有一個大寫字母的搜索詞,將大小寫敏感;其他情況都是大小寫不敏感。比如,搜索Test時,將不匹配test;搜索test時,將匹配Test。

六、編輯

(30)

set spell spelllang=en_us

打開英語單詞的拼寫檢查。

(31)

set nobackup

不創建備份文件。默認情況下,文件保存時,會額外創建一個備份文件,它的文件名是在原文件名的末尾,再添加一個波浪號(?)。

(32)

set noswapfile

不創建交換文件。交換文件主要用于系統崩潰時恢復文件,文件名的開頭是.、結尾是.swp。

(33)

set undofile

保留撤銷歷史。

Vim 會在編輯時保存操作歷史,用來供用戶撤消更改。默認情況下,操作記錄只在本次編輯時有效,一旦編輯結束、文件關閉,操作歷史就消失了。

打開這個設置,可以在文件關閉后,操作記錄保留在一個文件里面,繼續存在。這意味著,重新打開一個文件,可以撤銷上一次編輯時的操作。撤消文件是跟原文件保存在一起的隱藏文件,文件名以.un~開頭。

(34)

set backupdir=~/.vim/.backup//

set directory=~/.vim/.swp//

set undodir=~/.vim/.undo//

設置備份文件、交換文件、操作歷史文件的保存位置。

結尾的//表示生成的文件名帶有絕對路徑,路徑中用%替換目錄分隔符,這樣可以防止文件重名。

(35)

set autochdir

自動切換工作目錄。這主要用在一個 Vim 會話之中打開多個文件的情況,默認的工作目錄是打開的第一個文件的目錄。該配置可以將工作目錄自動切換到,正在編輯的文件的目錄。

(36)

set noerrorbells

出錯時,不要發出響聲。

(37)

set visualbell

出錯時,發出視覺提示,通常是屏幕閃爍。

(38)

set history=1000

Vim 需要記住多少次歷史操作。

(39)

set autoread

打開文件監視。如果在編輯過程中文件發生外部改變(比如被別的編輯器編輯了),就會發出提示。

(40)

set listchars=tab:?■,trail:■

set list

如果行尾有多余的空格(包括 Tab 鍵),該配置將讓這些空格顯示成可見的小方塊。

(41)

set wildmenu

set wildmode=longest:list,full

命令模式下,底部操作指令按下 Tab 鍵自動補全。第一次按下 Tab,會顯示所有匹配的操作指令的清單;第二次按下 Tab,會依次選擇各個指令。

七、參考鏈接

(完)

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/393031.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/393031.shtml
英文地址,請注明出處:http://en.pswp.cn/news/393031.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

spring 之 property-placeholder 分析

不難知道&#xff0c; property-placeholder 的解析是 PropertyPlaceholderBeanDefinitionParser 完成的&#xff0c; 但是 它僅僅是個parser &#xff0c; 它僅僅是讀取了 location 等配置屬性&#xff0c; 并沒有完成真正的解析&#xff0c;及 注冊。 <context:property-p…

leetcode面試題 10.02. 變位詞組

編寫一種方法&#xff0c;對字符串數組進行排序&#xff0c;將所有變位詞組合在一起。變位詞是指字母相同&#xff0c;但排列不同的字符串。 注意&#xff1a;本題相對原題稍作修改 示例: 輸入: [“eat”, “tea”, “tan”, “ate”, “nat”, “bat”], 輸出: [ [“ate”,…

hacktoberfest_我第一次參加Hacktoberfest中學到了什么

hacktoberfestImposter syndrome is something we all struggle with to one degree or another. Imposter syndrome is the fear of exposure as a fraud. If you’re anything like me you have felt like your work was not good enough to show. Or you weren’t far along…

--save 和--save-dev的區別

npm install 在安裝 npm 包時&#xff0c;有兩種命令參數可以把它們的信息寫入 package.json 文件&#xff0c;一個是npm install --save另一個是 npm install --save-dev&#xff0c;他們表面上的區別是--save 會把依賴包名稱添加到 package.json 文件 dependencies 鍵下&…

Linux 文件區塊連續嗎,關于Linux文件系統的的簡單理解和認識

關于Linux文件系統的的簡單理解和認識關于文件系統的運作&#xff0c;這與操作系統帶的檔案數據有關。例如Linux操作系統的檔案權限(rwx)與文件屬性(擁有者&#xff0c;群組&#xff0c;時間參數等)。文件系統通常會將這兩部分的數據分別存放在不同的區塊&#xff0c;權限與屬性…

服務器性能和活動監視

監視數據庫的目的是評估服務器的性能。 有效監視包括定期拍攝當前性能的快照來隔離導致問題的進程&#xff0c;以及連續收集數據來跟蹤性能趨勢。 Microsoft SQL Server 和 Microsoft 操作系統提供實用工具&#xff0c;使您可以查看數據庫的當前狀態并跟蹤性能的狀態變化。 下一…

Microsoft Desktop Virtualization

基本上有兩套啦&#xff0c;一是大家較為熟悉的MED-V。另外就是VDI(虛擬桌面基礎架構)&#xff0c;也就是以下的組合&#xff1a;1、Windows Server 2008 with Hyper-V 2、System Center Virtual Machine Manager (VMM) 2008 VMM 20083、Windows Vista Enterprise Centralized …

leetcode60. 第k個排列(回溯算法)

給出集合 [1,2,3,…,n]&#xff0c;其所有元素共有 n! 種排列。 按大小順序列出所有排列情況&#xff0c;并一一標記&#xff0c;當 n 3 時, 所有排列如下&#xff1a; “123” “132” “213” “231” “312” “321” 給定 n 和 k&#xff0c;返回第 k 個排列。 說明&…

webpack設置應用緩存_如何使用Webpack在Rails應用程序中設置TinyMCE

webpack設置應用緩存by Joanna Gaudyn喬安娜高登(Joanna Gaudyn) 如何使用Webpack在Rails應用程序中設置TinyMCE (How to setup TinyMCE in your Rails app using Webpack) The popularity of using Webpack to deal with your assets in Rails is steadily increasing. Getti…

springmvc ajax 頁面無法重定向問題!!!!

誒誒誒。這個問題困擾了我一天&#xff0c;百度了很多都不行。 剛實戰ssm框架&#xff0c;做登錄跳轉的時候&#xff0c;我是用ajax提交數據到后臺&#xff0c;然后后天返回數據進前臺&#xff0c;前臺再給用戶一些比較友好的提示&#xff0c;比如用戶名或密碼錯誤之類的。 所以…

linux svn log 亂碼,解決p42svn中文log亂碼的問題

現象&#xff1a;將perforce代碼庫遷移至SVN時log亂碼。p42svn.pl在windows下運行至"-|"時會報錯&#xff0c;于是安裝了linux虛擬機&#xff0c;從虛擬linux中運行p42svn.pl生成dump文件&#xff0c;再傳至windows下用svnadmin load。可是在svn查看log時&#xff0…

Django開發中常用的命令總結

1. 創建一個Django Project#使用下面的命令可以創建一個projectdjango-admin.py startproject mysite #創建好之后可以看到如下的pro... 1. 創建一個Django Project 1 2 3 4 5 6 7 8 9 10 11 #使用下面的命令可以創建一個project django-admin.py startproject mysite #創…

xml解析-jaxp添加結點

jaxp添加結點 eg&#xff1a; //在第一個下面添加nv / 1.創建解析器工廠 * 2.根據解析器工廠創建解析器 * 3.解析xml返回document * * 4.得到第一個p1 * -得到所有p1使用item方法得到第一個p1 * * 5.創建sex標簽 createElement * 6.創建文本 createTextNode * 7.把文本添加到se…

leetcode107. 二叉樹的層次遍歷 II

給定一個二叉樹&#xff0c;返回其節點值自底向上的層次遍歷。 &#xff08;即按從葉子節點所在層到根節點所在的層&#xff0c;逐層從左向右遍歷&#xff09;例如&#xff1a; 給定二叉樹 [3,9,20,null,null,15,7],3/ \9 20/ \15 7 返回其自底向上的層次遍歷為&#xff1a…

javascript 圖表_JavaScript 2018年的三個有爭議的圖表

javascript 圖表by Sacha Greif由Sacha Greif JavaScript 2018年的三個有爭議的圖表 (Three Controversial Charts From the State of JavaScript 2018) 您認為統計數據和圖表很無聊嗎&#xff1f; 再想一想… (You thought stats and graphs were boring? Think again…) “…

簽入在服務器上之后,別人獲取了,在解決方案資源管理器中找不到。

簽入在服務器上之后&#xff0c;別人獲取了&#xff0c;在解決方案資源管理器中找不到。 這個問題具體原因我也不太清楚&#xff0c;但是我找到了一個解決方案。直接在解決方案上右鍵&#xff0c;添加&#xff0c;添加現有項。把在解決方案資源管理器上看不見的選中&#xff0c…

03JavaScript程序設計修煉之道-2019-06-20_20-31-49

## DomDocument object model 文檔對象模型Dom樹html|head body| |meta title div|ul|li li li在js世界中&#xff0c;把dom樹的每個元素都看成一個對象&#xff0c;對象就有屬性和方法dom學什么 dom節點操作 查找元素 元素增刪改查 樣式操作 事件綁定等## 事件三要素 1 事件源…

linux 獨占 cpu,宋寶華:談一談Linux讓實時 高性能任務獨占CPU的事

本文主要討論在高實時要求、高效能計算、DPDK等領域&#xff0c;Linux如何讓某一個線程排他性獨占CPU&#xff1b;獨占CPU涉及的線程、中斷隔離原理&#xff1b;以及如何在排他性獨占的狀況下&#xff0c;甚至讓系統的timer tick也不打斷獨占任務&#xff0c;從而實現最低的延遲…

leetcode347. 前 K 個高頻元素(排序)

給定一個非空的整數數組&#xff0c;返回其中出現頻率前 k 高的元素。 示例 1: 輸入: nums [1,1,1,2,2,3], k 2 輸出: [1,2] 示例 2: 輸入: nums [1], k 1 輸出: [1] 代碼 class Solution {public int[] topKFrequent(int[] nums, int k) {Map<Integer,Integer>…

如何在React中從其父組件更改子組件的狀態

by Johny Thomas約翰尼托馬斯(Johny Thomas) 如何在React中從其父組件更改子組件的狀態 (How to change the state of a child component from its parent in React) We will be building a simple React app which shows the real name of a superhero on a button click.我們…