vim学习笔记(一)
生活随笔
收集整理的這篇文章主要介紹了
vim学习笔记(一)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
:vertical sfind ?垂直分隔窗口(vsf),但是兩個窗口的內容完全相同。在編輯的時候,內容也完全相同,如果要關閉一個窗口,輸入:exit即可
:buffers 顯示整個緩沖區列表
ndG 刪除從當前行到指定n行中的內容
nd ?刪除當前行及下面的n行
編輯加密文件,使用"-x"參數 vim -x exam.txt 下次使用vim打開該文件時,會提醒你輸入密碼,若密碼不對,打開將是亂碼。 ‘-n’選項表示禁用交換文件,如 vim -x -n file.txt
vim中直接訪問internet文件靠的是netrw插件。
在通常模式下,將光標放到你指定的字節上,輸入命令g Ctrl+G就會在屏幕底部顯示該字節的位置信息: 第幾列,第幾行,第幾個詞,第幾個字符,第幾個字節
在通常模式下,先將光標放到C文件的函數內某個局部變量的位置,輸入gd命令,將會顯示該變量所有出現(引用的或是定義的)地方 * 到與當前單詞相同的下一個單詞上 #到與當前單詞相同的上一個單詞上 ‘’當上次光標??康男? %讓光標跳到匹配的括號上 J 將當前行和下一行合并起來
使用m命令標注文本的位置
vim通過cindent來實現自動縮進,set cindent可縮寫為se cindent,注意cindent控制縮進量通過設置shiftwidth的值(默認為8)。 語法高亮功能 syntax=on
:make 簡寫為 :mak
查看運行時文件路徑 :echo $VIMRUNTIME /usr/share/vim/vim72 查看vim所用的語言 :language 使用下面的命令來查看vim的基本信息(版本,編譯時間,編譯方式,鏈接方式),和配置的模塊功能,vimrc文件和用戶exrc文件路徑等 :version
vim啟動時會去檢查你的系統所用的語言,使用如下命令查詢 :language 使用如下命令設置 :language fr_FR.ISO_8859-1 encoding選項告訴vim你所用的字符是什么,它同時影響緩沖區內的文件,寄存器的內容以及vim腳本文件等 vim使用fileencodings選項中指定的可用編碼方案(使用unicode時默認值為“ucs-bom,utf-8,latin1”)來自動檢測你的文本 fileencoding選項被設置為檢測到的編碼,如果與encoding比較,發現不同就需要轉換編碼 :set fileencodings=ucs-bom,utf-8,latin 表示文件沒有字節順序標記并且不是utf-8時就設置為西歐語系 :set fileencodings=ucs-bom,utf-8,sjis 表示文件沒有字節順序標記并且不是utf-8時就設置為日文
作為命令快捷鍵的建映射
使用鍵盤映射的方法 CTRL+^ 在normal模式下跳轉到最近編輯的文件 在insert和冒號命令行模式下切換兩種不同語言的字符集
查看vim的運行時目錄 :set runtimepath
鍵映射 將一個單個的鍵映射為一系列其它鍵了,使用尖括號表示法,可以定義不同模式下的鍵序,也可以對同一個鍵序在不同模式下映射不同的內容 對于mapping簇的命令,一般來說,都有各個不同模式下的變體 Normal模式: :map ?<F2> <CR>Date: ?<Esc>:read !date<CR>kJ 插入模式: :imap ?<F2> <CR>Date: ?<Esc>:read !date<CR>kJ 命令行模式: :cmap Operating-pending: :omap <F7> a{
使用:map查看當前定義了哪些映射,據此可以判斷一些在<>中的字符是否能被vim以特殊字符對待 當一個映射在運行過程中發生了一個錯誤,那么映射的剩余動作就會被撤銷掉,也可以按Ctrl+C來中斷正在運行的映射 :noremap ?避免映射的內容又被映射 :unmap 刪除一個映射 :mapclear 刪除所有的映射 在映射中使用空格的話,使用<Space>來代替,|是命令之間的分隔符, 如果同時有縮寫和映射,vim會優先使用映射,vim對鍵入每個字符的延遲進行監控
vim編輯器允許你定義自己的冒號命令,然后就可以像執行vim固有的冒號命令一樣來使用它: 語法格式: :command DeleteFirst 1delete 自定義的冒號命令必須以一個大寫字母開頭 使用下面的命令列出所有的自定義命令: :command 自定義命令的冒號命令可以跟一系列參數,使用-nargs,比如 :command -nagrs=0 DeleteFirst 1delete
自動命令 一個自動命令是在某個事件發生時會自動執行的命令。都是冒號命令。 :autocmd ?[group] {events} {file-pattern} [nested] {command} 其中 {group}用于在定義自動命令時為相關的命令分組,也便于刪除自動命令時,據此一次刪除一批命令 {file-pattern}是模式字串,一個通常帶有通配符的文件名,比如“*.txt”,“*.c,*.h” {command} 實際要執行的命令體 刪除自動命令,比如: :autocmd! FileWritePre * ? ?? 注意不要命令體,下面的命令列出當前已定義的自動命令列表 :autocmd 使用下面的命令來忽略一個事件 :set eventignore=all
ndG 刪除從當前行到指定n行中的內容
nd ?刪除當前行及下面的n行
編輯加密文件,使用"-x"參數 vim -x exam.txt 下次使用vim打開該文件時,會提醒你輸入密碼,若密碼不對,打開將是亂碼。 ‘-n’選項表示禁用交換文件,如 vim -x -n file.txt
vim中直接訪問internet文件靠的是netrw插件。
在通常模式下,將光標放到你指定的字節上,輸入命令g Ctrl+G就會在屏幕底部顯示該字節的位置信息: 第幾列,第幾行,第幾個詞,第幾個字符,第幾個字節
在通常模式下,先將光標放到C文件的函數內某個局部變量的位置,輸入gd命令,將會顯示該變量所有出現(引用的或是定義的)地方 * 到與當前單詞相同的下一個單詞上 #到與當前單詞相同的上一個單詞上 ‘’當上次光標??康男? %讓光標跳到匹配的括號上 J 將當前行和下一行合并起來
使用m命令標注文本的位置
vim通過cindent來實現自動縮進,set cindent可縮寫為se cindent,注意cindent控制縮進量通過設置shiftwidth的值(默認為8)。 語法高亮功能 syntax=on
:make 簡寫為 :mak
查看運行時文件路徑 :echo $VIMRUNTIME /usr/share/vim/vim72 查看vim所用的語言 :language 使用下面的命令來查看vim的基本信息(版本,編譯時間,編譯方式,鏈接方式),和配置的模塊功能,vimrc文件和用戶exrc文件路徑等 :version
vim啟動時會去檢查你的系統所用的語言,使用如下命令查詢 :language 使用如下命令設置 :language fr_FR.ISO_8859-1 encoding選項告訴vim你所用的字符是什么,它同時影響緩沖區內的文件,寄存器的內容以及vim腳本文件等 vim使用fileencodings選項中指定的可用編碼方案(使用unicode時默認值為“ucs-bom,utf-8,latin1”)來自動檢測你的文本 fileencoding選項被設置為檢測到的編碼,如果與encoding比較,發現不同就需要轉換編碼 :set fileencodings=ucs-bom,utf-8,latin 表示文件沒有字節順序標記并且不是utf-8時就設置為西歐語系 :set fileencodings=ucs-bom,utf-8,sjis 表示文件沒有字節順序標記并且不是utf-8時就設置為日文
作為命令快捷鍵的建映射
使用鍵盤映射的方法 CTRL+^ 在normal模式下跳轉到最近編輯的文件 在insert和冒號命令行模式下切換兩種不同語言的字符集
查看vim的運行時目錄 :set runtimepath
鍵映射 將一個單個的鍵映射為一系列其它鍵了,使用尖括號表示法,可以定義不同模式下的鍵序,也可以對同一個鍵序在不同模式下映射不同的內容 對于mapping簇的命令,一般來說,都有各個不同模式下的變體 Normal模式: :map ?<F2> <CR>Date: ?<Esc>:read !date<CR>kJ 插入模式: :imap ?<F2> <CR>Date: ?<Esc>:read !date<CR>kJ 命令行模式: :cmap Operating-pending: :omap <F7> a{
使用:map查看當前定義了哪些映射,據此可以判斷一些在<>中的字符是否能被vim以特殊字符對待 當一個映射在運行過程中發生了一個錯誤,那么映射的剩余動作就會被撤銷掉,也可以按Ctrl+C來中斷正在運行的映射 :noremap ?避免映射的內容又被映射 :unmap 刪除一個映射 :mapclear 刪除所有的映射 在映射中使用空格的話,使用<Space>來代替,|是命令之間的分隔符, 如果同時有縮寫和映射,vim會優先使用映射,vim對鍵入每個字符的延遲進行監控
vim編輯器允許你定義自己的冒號命令,然后就可以像執行vim固有的冒號命令一樣來使用它: 語法格式: :command DeleteFirst 1delete 自定義的冒號命令必須以一個大寫字母開頭 使用下面的命令列出所有的自定義命令: :command 自定義命令的冒號命令可以跟一系列參數,使用-nargs,比如 :command -nagrs=0 DeleteFirst 1delete
自動命令 一個自動命令是在某個事件發生時會自動執行的命令。都是冒號命令。 :autocmd ?[group] {events} {file-pattern} [nested] {command} 其中 {group}用于在定義自動命令時為相關的命令分組,也便于刪除自動命令時,據此一次刪除一批命令 {file-pattern}是模式字串,一個通常帶有通配符的文件名,比如“*.txt”,“*.c,*.h” {command} 實際要執行的命令體 刪除自動命令,比如: :autocmd! FileWritePre * ? ?? 注意不要命令體,下面的命令列出當前已定義的自動命令列表 :autocmd 使用下面的命令來忽略一個事件 :set eventignore=all
| 謝謝各位的無私分享。俺在工作中常常vi,也把俺總結的一些小trick分享出來。僅供參考: - Replace pattern1 to pattern2 in line range from line 21 - 27: :21,27s/pattern1/pattern2/ - Replace pattern1 to pattern2 in line range from line 21 - 27 - if more than one pattern1 in the SAME line, replace all of them: :21,27s/pattern1/pattern2/g - Replace pattern1 to pattern2 in line range from line 21 - bottom line of the file: :21,$s/pattern1/pattern2/ :21,$s/pattern1/pattern2/g - 全局替換: :1,$s/pattern1/pattern2/ or, :1,$s/pattern1/pattern2/g - Delete lines from certain line number to current line, like Delete from beginning to this line: :1,./d - Right shift a tab from line 1 - 20. :1,20>? - Right shift two tabs from line 1 - 20. :1,20>>? - Left shift a tab from line 1 - 20. :1,20< - Delete # in the beginning of each line (in unix shell, # is the starting character of each line). :1,$s/^#// |
總結
以上是生活随笔為你收集整理的vim学习笔记(一)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: vim学习笔记(四)
- 下一篇: vim学习笔记(三)