vimrc配置文件

vimrc配置文件

轉自:https://www.ruanyifeng.com/blog/2018/09/vimrc.html

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

  • 可以不使用鼠標,完全用鍵盤操作。
  • 系統資源占用小,打開大文件毫無壓力。
  • 鍵盤命令變成肌肉記憶以后,操作速度極快。
  • 服務器默認都安裝 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,會依次選擇各個指令。

另一篇總結

以下是另一篇博客的總結:

https://blog.51cto.com/zpf666/2335640

"~/.vimrc
"vim config file
"date 2018-12-26
"Created by bert 
"blog:http://blog.51cto.com/zpf666
"""""""""""""""""""""""""""""""""""
"""=>全局配置<="""
"""""""""""""""""""""""""""""""""""
"關閉vi兼容模式"
set nocompatible"設置歷史記錄步數"
set history=1000"開啟相關插件"
"偵測文件類型"
filetype on
"載入文件類型插件"
filetype plugin on
"為特定文件類型載入相關縮進文件"
filetype indent on"當文件在外部被修改時,自動更新該文件"
set autoread"激活鼠標的使用"
set mouse=a
set selection=exclusive
set selectmode=mouse,key"保存全局變量"
set viminfo+=!"帶有如下符號的單詞不要被換行分割"
set iskeyword+=_,$,@,%,#,-"通過使用: commands命令,告訴我們文件的哪一行被改變過"
set report=0"被分割的窗口間顯示空白,便于閱讀"
set fillchars=vert:\ ,stl:\ ,stlnc:\"""""""""""""""""""""""""""""""""
"""=>字體和顏色<="""
"""""""""""""""""""""""""""""""""
"自動開啟語法高亮"
syntax enable"設置字體"
"set guifont=dejaVu\ Sans\ MONO\ 10
set guifont=Courier_New:h10:cANSI"設置顏色"
"colorscheme desert"高亮顯示當前行"
set cursorline
hi cursorline guibg=#00ff00
hi CursorColumn guibg=#00ff00"高亮顯示普通txt文件(需要txt.vim腳本)"
au BufRead,BufNewFile *  setfiletype txt"""""""""""""""""""""""""""""""
"""=>代碼折疊功能<="""
"""""""""""""""""""""""""""""""
"激活折疊功能"
set foldenable
"set nofen(這個是關閉折疊功能)""設置按照語法方式折疊(可簡寫set fdm=XX)"
"有6種折疊方法:
"manual   手工定義折疊"
"indent   更多的縮進表示更高級別的折疊"
"expr     用表達式來定義折疊"
"syntax   用語法高亮來定義折疊"
"diff     對沒有更改的文本進行折疊"
"marker   對文中的標志進行折疊"
set foldmethod=manual
"set fdl=0(這個是不選用任何折疊方法)""設置折疊區域的寬度"
"如果不為0,則在屏幕左側顯示一個折疊標識列
"分別用“-”和“+”來表示打開和關閉的折疊
set foldcolumn=0"設置折疊層數為3"
setlocal foldlevel=3"設置為自動關閉折疊"
set foldclose=all"用空格鍵來代替zo和zc快捷鍵實現開關折疊"
"zo O-pen a fold (打開折疊)
"zc C-lose a fold (關閉折疊)
"zf F-old creation (創建折疊)
"nnoremap <space> @=((foldclosed(line('.')) < 0) ? 'zc' : 'zo')<CR>"""""""""""""""""""""""""""""""""""
"""=>文字處理<="""
"""""""""""""""""""""""""""""""""""
"使用空格來替換Tab"
set expandtab"設置所有的Tab和縮進為4個空格"
set tabstop=4"設定<<和>>命令移動時的寬度為4"
set shiftwidth=4"使得按退格鍵時可以一次刪除4個空格"
set softtabstop=4
set smarttab"縮進,自動縮進(繼承前一行的縮進)"
"set autoindent 命令打開自動縮進,是下面配置的縮寫
"可使用autoindent命令的簡寫,即“:set ai”和“:set noai”
"還可以使用“:set ai sw=4”在一個命令中打開縮進并設置縮進級別
set ai
set cindent"智能縮進"
set si"自動換行”
set wrap"設置軟寬度"
set sw=4"行內替換"
set gdefault""""""""""""""""""""""""""""""""""
"""=>Vim 界面<="""
""""""""""""""""""""""""""""""""""
"增強模式中的命令行自動完成操作"
set wildmenu"顯示標尺"
set ruler"設置命令行的高度"
set cmdheight=1"顯示行數"
set nu"不要圖形按鈕"
set go="在執行宏命令時,不進行顯示重繪;在宏命令執行完成后,一次性重繪,以便提高性能"
set lz"使回格鍵(backspace)正常處理indent, eol, start等"
set backspace=eol,start,indent"允許空格鍵和光標鍵跨越行邊界"
set whichwrap+=<,>,h,l"設置魔術"
set magic"關閉遇到錯誤時的聲音提示"
"關閉錯誤信息響鈴"
set noerrorbells"關閉使用可視響鈴代替呼叫"
set novisualbell"高亮顯示匹配的括號([{和}])"
set showmatch"匹配括號高亮的時間(單位是十分之一秒)"
set mat=2"光標移動到buffer的頂部和底部時保持3行距離"
set scrolloff=3"搜索逐字符高亮"
set hlsearch
set incsearch"搜索時不區分大小寫"
"還可以使用簡寫(“:set ic”和“:set noic”)"
set ignorecase"用淺色高亮顯示當前行"
autocmd InsertLeave * se nocul
autocmd InsertEnter * se cul"輸入的命令顯示出來,看的清楚"
set showcmd""""""""""""""""""""""""""""""""""""
"""=>編碼設置<="""
""""""""""""""""""""""""""""""""""""
"設置編碼"
set encoding=utf-8
set fencs=utf-8,ucs-bom,shift-jis,gb18030,gbk,gb2312,cp936"設置文件編碼"
set fileencodings=utf-8"設置終端編碼"
set termencoding=utf-8"設置語言編碼"
set langmenu=zh_CN.UTF-8
set helplang=cn"""""""""""""""""""""""""""""
"""=>其他設置<="""
"""""""""""""""""""""""""""""
"開啟新行時使用智能自動縮進"
set smartindent
set cin
set showmatch"在處理未保存或只讀文件的時候,彈出確認"
set confirm"隱藏工具欄"
set guioptions-=T"隱藏菜單欄"
set guioptions-=m"置空錯誤鈴聲的終端代碼"
set vb t_vb="顯示狀態欄(默認值為1,表示無法顯示狀態欄)"
set laststatus=2"狀態行顯示的內容"
set statusline=%F%m%r%h%w\ [FORMAT=%{&ff}]\ [TYPE=%Y]\ [POS=%l,%v][%p%%]\ %{strftime(\"%d/%m/%y\ -\ %H:%M\")}"粘貼不換行問題的解決方法"
set pastetoggle=<F9>"設置背景顏色"
set background=dark"文件類型自動檢測,代碼智能補全"
set completeopt=longest,preview,menu"共享剪切板"
set clipboard+=unnamed"從不備份"
set nobackup
set noswapfile"自動保存"
set autowrite"顯示中文幫助"
if version >= 603set helplang=cnset encoding=utf-8
endif"設置高亮相關項"
highlight Search ctermbg=black ctermfg=white guifg=white guibg=black""""""""""""""""""""""""""""""""
"""=>在shell腳本開頭自動增加解釋器以及作者等版權信息<="""
""""""""""""""""""""""""""""""""
"新建.py,.cc,.sh,.java文件,自動插入文件頭"
autocmd BufNewFile *.py,*.cc,*.sh,*.java exec ":call SetTitle()"
"定義函數SetTitle,自動插入文件頭"
func SetTitle()if expand ("%:e") == 'sh'call setline(1, "#!/bin/bash")call setline(2, "#Author:bert")call setline(3, "#Blog:http://blog.51cto.com/zpf666")call setline(4, "#Time:".strftime("%F %T"))call setline(5, "#Name:".expand("%"))call setline(6, "#Version:V1.0")call setline(7, "#Description:This is a production script.")endif
endfunc

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

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

相關文章

CTFHUB 《請求方式》 http請求,curl命令總結

打開網頁&#xff1a; 思路一&#xff1a; 根據題目&#xff0c;應該是向網頁發送get方式請求&#xff0c;但并沒有具體規定要發送什么&#xff0c;嘗試get發送參數后&#xff0c;都沒有返回網頁&#xff0c;emmm’…好像不是我想的那種套路 思路二&#xff1a; 網上找到思路…

Vim進階2 map映射

Vim進階2 map映射 簡介 map是一個 vim 中的一些列映射命令&#xff0c;將常用的很長的命令映射到一個新的功能鍵上。map是Vim強大的一個重要原因&#xff0c;可以自定義各種快捷鍵&#xff0c;用起來自然得心應手。 map系列命令格式 格式 以 map 命令為例&#xff0c;它的…

CTFHUB 《基礎認證》:burp使用,basic請求了解

題目簡介&#xff1a;在HTTP中&#xff0c;基本認證&#xff08;英語&#xff1a;Basic access authentication&#xff09;是允許http用戶代理&#xff08;如&#xff1a;網頁瀏覽器&#xff09;在請求時&#xff0c;提供 用戶名 和 密碼 的一種方式。詳情請查看 https://zh.w…

信息量、熵、交叉熵、KL散度、JS散度雜談及代碼實現

信息量、熵、交叉熵、KL散度、JS散度雜談及代碼實現 信息量 任何事件都會承載著一定的信息量&#xff0c;包括已經發生的事件和未發生的事件&#xff0c;只是它們承載的信息量會有所不同。如昨天下雨這個已知事件&#xff0c;因為已經發生&#xff0c;既定事實&#xff0c;那…

CTFHUB《Web-信息泄露-備份文件下載》網站源碼,

1.網站源碼 三種方法&#xff1a; 方法一&#xff1a;dirsearch掃描git泄露 有文件下載 拿到flag 方法二&#xff1a;御劍&#xff08;超時10s&#xff09; 御劍其實也可以掃出來&#xff0c;但是一般我們掃域名超時時間都是三秒&#xff0c;本環境中需要超時10秒才能得到…

Linux下C/C++程序編譯鏈接加載過程中的常見問題及解決方法

Linux下C/C程序編譯鏈接加載過程中的常見問題及解決方法 1 頭文件包含的問題 報錯信息 該錯誤通常發生在編譯時&#xff0c;常見報錯信息如下&#xff1a; run.cpp:2:10: fatal error: dlpack/dlpack.h: No such file or directory#include <dlpack/dlpack.h>^~~~~~~…

DVWA Command Injection 練習總結

low: 首先查看源碼沒有對字符進行任何過濾 target參數為將要ping的ip地址&#xff0c;比如在輸入框輸入127.0.0.1后&#xff0c;對于windows系統&#xff0c;會發出ping 127.0.0.1操作。 這里可以引入命令行的幾種操作方式&#xff1a; A && B&#xff1a; 先執行A…

在vimrc中設置record

在vimrc中設置record Vim的record功能在大量重復操作的場景下非常實用&#xff0c;但是&#xff0c;一般我們都要每次進入Vim時重新錄制record。而對于一些非常常用的record&#xff0c;我們想讓它永久地保持&#xff0c;我們知道這種需求需要借助Vim的配置文件vimrc。但是具體…

DVWA sql注入 WP

sql注入基本思路&#xff1a; 1.源碼 2.判斷數字型和字符型 3.猜測字段數 4.查詢數據庫中的字段 5.查詢表中的字段 6.查詢user表中的字段 7.拿字段中數據 low: 1.源碼&#xff1a; <?phpif( isset( $_REQUEST[ Submit ] ) ) {// Get input$id $_REQUEST[ id ];// Check…

cmake find_package路徑詳解

cmake find_package路徑詳解 轉自&#xff1a;https://zhuanlan.zhihu.com/p/50829542 經常在Linux下面寫C程序&#xff0c;尤其是需要集成各種第三方庫的工程&#xff0c;肯定對find_package指令不陌生。 這是條很強大的指令。可以直接幫我們解決整個工程的依賴問題&#x…

DVWA File Inclusion——Writeup

文件包含&#xff1a; 即File Inclusion&#xff0c;意思是文件包含&#xff08;漏洞&#xff09;&#xff0c;是指當服務器開啟allow_url_include選項時&#xff0c;就可以通過php的某些特性函數&#xff08;include()&#xff0c;require()和include_once()&#xff0c;requi…

PyTorch JIT與TorchScript

PyTorch JIT與TorchScript 轉自&#xff1a;https://zhuanlan.zhihu.com/p/370455320 如果搜索 PyTorch JIT&#xff0c;找到的將會是「TorchScript」的文檔&#xff0c;那么什么是 JIT 呢&#xff1f;JIT 和 TorchScript 又有什么聯系&#xff1f; 文章只會關注概念的部分&a…

DVWA Cross Site Request Forgery (CSRF) -------WP

CSRF: 介紹 CSRF跨站點請求偽造(Cross—Site Request Forgery)&#xff0c;跟XSS攻擊一樣&#xff0c;存在巨大的危害性&#xff0c;你可以這樣來理解&#xff1a; 攻擊者盜用了你的身份&#xff0c;以你的名義發送惡意請求&#xff0c;對服務器來說這個請求是完全合法的&…

PyTorch C++ API libtorch 簡介

PyTorch C API libtorch 簡介 翻譯自 PyTorch 官方文檔&#xff1a;https://pytorch.org/cppdocs/index.html#acknowledgements 整體劃分 根據 PyTorch 官方文檔 的介紹&#xff0c;PyTorch的C API可以粗略分為以下五個部分&#xff1a; ATen&#xff1a;基礎的張量和數學計…

DVWA upload

LOW medium high impossible

安裝 PyTorch C++ API libtorch 及一個最小例子

安裝 PyTorch C API libtorch 及一個最小例子 翻譯自&#xff1a;https://pytorch.org/cppdocs/installing.html 我們提供依賴 PyTorch 所需的所有頭文件、庫和 CMake 配置文件的二進制分發版。我們將此發行版稱為 LibTorch&#xff0c;您可以在我們的網站上下載包含最新 Lib…

ImageNet 1K 類別名與索引的對應關系

ImageNet 1K 類別名與索引的對應關系 轉自&#xff1a;http://befree2008.github.io/2018/10/05/20181005_ImageNet1000%E5%88%86%E7%B1%BB%E5%90%8D%E7%A7%B0%E5%92%8C%E7%BC%96%E5%8F%B7/ ImageNet 2012 1000個類名稱和編號。ILSVRC2012_img_train.tar 這個文件解壓出來都是…

sqlilab--writeup (5~6) 布爾盲注

1.# 和 – &#xff08;有個空格&#xff09;表示注釋&#xff0c;可以使它們后面的語句不被執行。在url中&#xff0c;如果是get請求**(記住是get請求&#xff0c;也就是我們在瀏覽器中輸入的url)** &#xff0c;解釋執行的時候&#xff0c;url中#號是用來指導瀏覽器動作的&am…

PyTorch導出JIT模型并用C++ API libtorch調用

PyTorch導出JIT模型并用C API libtorch調用 本文將介紹如何將一個 PyTorch 模型導出為 JIT 模型并用 PyTorch 的 CAPI libtorch運行這個模型。 Step1&#xff1a;導出模型 首先我們進行第一步&#xff0c;用 Python API 來導出模型&#xff0c;由于本文的重點是在后面的部署…

sqli-lab--writeup(7~10)文件輸出,時間布爾盲注

前置知識點&#xff1a; 1、outfile是將檢索到的數據&#xff0c;保存到服務器的文件內&#xff1a; 格式&#xff1a;select * into outfile “文件地址” 示例&#xff1a; mysql> select * into outfile ‘f:/mysql/test/one’ from teacher_class; 2、文件是自動創建…