日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

vim note(6)--vim的一个较全的介绍(转)

發(fā)布時(shí)間:2024/4/17 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 vim note(6)--vim的一个较全的介绍(转) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

vim的配置文件

  ~/.vimrc???  ?? 用戶的默認(rèn)配置文件   ~/.vim/plugin/ ??用戶的默認(rèn)腳本文件的存放文件夾   ~/.vim/ftplugin/?用戶的默認(rèn)文件類型相關(guān)腳本文件的存放文件夾


?vim提供的編程支持

  文本信息(行號(hào)、文件名稱等)   代碼縮進(jìn)   語(yǔ)法高亮   高速定位   標(biāo)記位置   全文搜索   補(bǔ)全   多文件編輯   多窗體編輯   函數(shù)列表   文件列表   函數(shù)跳轉(zhuǎn)   語(yǔ)法錯(cuò)誤   字符集的編碼   二進(jìn)制查看

  等等...


初試vim

  在終端以root啟動(dòng) 輸入vim命令 顯示vim首頁(yè)

:r filename 讀入一個(gè)文件內(nèi)容,并寫入到當(dāng)前編輯器中

按i進(jìn)入插入模式

編輯完后:w保存

編輯完后按esc退出插入模式 進(jìn)入正常模式

然后輸入:sh進(jìn)入shell

編譯執(zhí)行


文本信息配置

set nu(寫入配置文件.vimrc中)?顯示行號(hào)。 ctrl-g(正常模式下使用命令)?顯示文件信息和當(dāng)前行。 statusline.vim(插件)?添加底部狀態(tài)欄。


代碼縮進(jìn)配置

filetype on(寫入配置文件.vimrc中)?使vim對(duì)文件類型敏感。 autocmd FileType c,cpp,h :setlocal cindent cinoptions=:0,g0,t0(寫入配置文件.vimrc中)?設(shè)置c縮進(jìn)風(fēng)格。詳細(xì)詳情參見:h cinoptions-values。 autocmd FileType c,cpp,h :setlocal et sta sw=4 sts=4 tabstop=4(寫入配置文件.vimrc中)?設(shè)置一次縮進(jìn)的距離是4個(gè)空格。 =(正常模式或者可視模式下使用命令)?依照縮進(jìn)風(fēng)格排版代碼。 <(可視模式下使用命令)?向左縮進(jìn)一級(jí)。 >(可視模式下使用命令)?向右縮進(jìn)一級(jí)。


語(yǔ)法高亮

filetype plugin on(寫入配置文件.vimrc中)?通常安裝的vim中已經(jīng)增加了各種語(yǔ)言的語(yǔ)法高亮插件。我們僅僅須要打開文件類型相關(guān)的插件就能夠了。


高速定位

gd(正常模式下使用命令)?跳轉(zhuǎn)到局部變量定義處。 gD(正常模式下使用命令)?跳轉(zhuǎn)到全局標(biāo)量定義處。 *(正常模式下使用命令)?搜索并跳到下一個(gè)光標(biāo)所在的單詞。 g*(正常模式下使用命令)?功能接近*,可是查找的目標(biāo)不帶\<和\>單詞分界符號(hào)。

#(正常模式下使用命令)?搜索并跳到上一個(gè)光標(biāo)所在的單詞。 g#(正常模式下使用命令)?功能接近#,可是查找的目標(biāo)不帶\<和\>單詞分界符號(hào)。


標(biāo)記位置

m{a-zA-Z0-9} (正常模式下使用命令)?在當(dāng)前位置制作一個(gè)標(biāo)記,標(biāo)記名字能夠使用a-z或者A-Z之間的隨意字符,比如輸入ma,就是將當(dāng)前位置標(biāo)記為a標(biāo)記。注意a-z為單文件標(biāo)記,不可跨文件使用。而A-Z0-9為全局標(biāo)記,能夠跨文件使用。

‘{a-zA-Z0-9} (正常模式下使用命令)?跳轉(zhuǎn)到本文件的標(biāo)記上。

:marks [{a-zA-z0-9}] (正常模式下使用命令)?查看指定標(biāo)記的內(nèi)容,不寫標(biāo)記號(hào)則查看全部。

:delm {a-zA-z0-9} (正常模式下使用命令)?刪除一個(gè)標(biāo)記。


全文搜索

:vimgrep(正常模式下使用命令)?全文搜索,功能同grep命令。可是支持在vim進(jìn)行多文件跳轉(zhuǎn)定位。

用法:vimgrep 正則表達(dá)式 文件。

文件支持通配符。比如*.c代表全部的.c文件。

假設(shè)希望遞歸搜索,能夠使用**/*,表示搜索全部的文件。 :cl?列舉結(jié)果 :cc(正常模式下使用命令)?當(dāng)前結(jié)果 :cn(正常模式下使用命令)?下一個(gè)結(jié)果 :cp(正常模式下使用命令)?上一個(gè)結(jié)果 :cw(正常模式下使用命令)?又一次打開搜索結(jié)果窗體


多文件編輯

vim f1 f2 …… fn(在shell下使用命令)?打開多個(gè)文件。 :e 文件名稱(正常模式下使用命令)?在vim中打開新文件。

:ls(正常模式下使用命令)?全部打開文件列表。 :bn(正常模式下使用命令)?到下一個(gè)文件。 :bp(正常模式下使用命令)?到上一個(gè)文件。 :b# 或 ctrl-6(正常模式下使用命令)?到近期的前一個(gè)文件。 set? autowriteall(寫入配置文件.vimrc中)?假設(shè)討厭每次打開新文件,vim喋喋不休的要求你保存。那么能夠設(shè)置自己主動(dòng)保存。


多窗體編輯 :sp? 文件名稱(正常模式下使用命令)?橫向拆分窗體(多行窗體)。

:vsp 文件名稱(正常模式下使用命令)?縱向拆分窗體(多列窗體)。 ctrl-w h(正常模式下使用命令)?將光標(biāo)移動(dòng)到左一個(gè)窗體。 ctrl-w j(正常模式下使用命令)?將光標(biāo)移動(dòng)到下一個(gè)窗體。 ctrl-w k(正常模式下使用命令)?將光標(biāo)移動(dòng)到上一個(gè)窗體。 ctrl-w l(正常模式下使用命令)?將光標(biāo)移動(dòng)到右一個(gè)窗體。

ctrl-w +(正常模式下使用命令)?當(dāng)前窗體尺寸變大。 ctrl-w -(正常模式下使用命令)?當(dāng)前窗體尺寸變小。 ctrl-w o(正常模式下使用命令)?僅僅顯示當(dāng)前窗體。


函數(shù)列表 taglist.vim(插件)?列表插件。 let Tlist_Use_Right_Window = 1(寫入配置文件.vimrc中)?假設(shè)希望列表在右側(cè)顯示,則增加這個(gè)配置,默認(rèn)是左側(cè)。 :Tlist(正常模式下使用命令)?顯示函數(shù)列表。 d(在taglist窗體下使用)?從列表中刪除文件。 +(在taglist窗體下使用)?展開文件。 -(在taglist窗體下使用)?折疊文件。

=(在taglist窗體下使用)?折疊全部文件。 x(在taglist窗體下使用)?顯示或隱藏正常窗體。


文件列表 NERD_tree.vim(插件)?橫向拆分窗體(多行窗體)。

let NERDTreeWinPos = 'right'(寫入配置文件.vimrc中)?假設(shè)希望文件樹在右側(cè)顯示。則增加這個(gè)配置,默認(rèn)是左側(cè)。 :NERDTree(正常模式下使用命令)?顯示文件列表。


函數(shù)跳轉(zhuǎn) ctags(軟件,須要另外安裝)?生成多種語(yǔ)言tag文件的軟件。

Ctags –R *.c(在shell下使用命令)?生成當(dāng)前路徑全部.c文件的tag。-R代表遞歸。 :ta 標(biāo)記 或 [g] ctrl-]?列舉標(biāo)簽(多個(gè)標(biāo)簽)或者跳轉(zhuǎn)到標(biāo)簽(單個(gè)標(biāo)簽)。

ctrl-t?返回上一級(jí)。

:tags?列出標(biāo)簽棧。


語(yǔ)法錯(cuò)誤 :make(正常模式下使用命令)?運(yùn)行外部make命令。而且顯示全部的編譯警告和錯(cuò)誤,而且能夠在vim中定位。 :cl?列舉結(jié)果 :cc(正常模式下使用命令)?當(dāng)前結(jié)果 :cn(正常模式下使用命令)?下一個(gè)結(jié)果 :cp(正常模式下使用命令)?上一個(gè)結(jié)果 :cw(正常模式下使用命令)?又一次打開搜索結(jié)果窗體


二進(jìn)制文件查看 (鑒于有同學(xué)理解出現(xiàn)分歧 將二進(jìn)制查看更新為二進(jìn)制文件查看)

:范圍!xxd(正常模式下使用命令)?把指定范圍的部分轉(zhuǎn)化為二進(jìn)制文件閱讀方式。

:范圍!xxd -r(正常模式下使用命令)?把指定范圍的部分轉(zhuǎn)回字符閱讀方式。


字符集的編碼 let &termencoding=&encoding set fileencodings=utf-8,gbk,cp936(寫入配置文件.vimrc中) ?增加多種字符編碼支持。

:set fileencoding(正常模式下使用命令)?設(shè)定文件字符編碼。


補(bǔ)充

ctrl-p(插入模式下使用命令)?跳出補(bǔ)全菜單。 ctrl-n(在跳出補(bǔ)全菜單后)?下一個(gè)結(jié)果。 ctrl-p(在跳出補(bǔ)全菜單后)?上一個(gè)結(jié)果。 ctrl-y(在跳出補(bǔ)全菜單后)?選擇當(dāng)前結(jié)果。 ctrl-x ctrl-f(插入模式下使用命令)?文件名稱補(bǔ)全。 ctrl-x ctrl-i(插入模式下使用命令)?包括的頭文件。 ctrl-x ctrl-](插入模式下使用命令)?ctags(將在下文中介紹)符號(hào)補(bǔ)全。

ctrl-x ctrl-o(插入模式下使用命令)?omni補(bǔ)全,須要設(shè)置omnifunc變量。


vim其它命令 (參考vi(vim)教程)

打開文件、保存、關(guān)閉文件:

vi filename ? ? ? //打開filename文件 :w??????   ???? //保存文件 :w vpser.net? //保存至vpser.net文件 :q????????   ??//退出編輯器。假設(shè)文件已改動(dòng)請(qǐng)使用以下的命令 :q!??????    ?//退出編輯器。且不保存 :wq ? ? ???? ?? ?//退出編輯器。且保存文件

插入文本或行:

a ? ? ?//在當(dāng)前光標(biāo)位置的右邊加入文本 i ? ? ??//在當(dāng)前光標(biāo)位置的左邊加入文本 A ? ? //在當(dāng)前行的末尾位置加入文本 I ? ? ?//在當(dāng)前行的開始處加入文本(非空字符的行首) O ? ? //在當(dāng)前行的上面新建一行 o ? ? //在當(dāng)前行的以下新建一行 R ? ?//替換(覆蓋)當(dāng)前光標(biāo)位置及后面的若干文本 J ? ?//合并光標(biāo)所在行及下一行為一行(依舊在命令模式)

移動(dòng)光標(biāo):

使用上下左右方向鍵

命令模式下:h?? 向左、j?? 向下 、k?? 向上、l? 向右。 空格鍵 向右、Backspace? 向左、Enter? 移動(dòng)到下一行首、-? 移動(dòng)到上一行首。

刪除:

x ? ? ? ? //刪除當(dāng)前字符 nx??????? //刪除從光標(biāo)開始的n個(gè)字符 dd ? ? ?//刪除當(dāng)前行 ndd ? //向下刪除當(dāng)前行在內(nèi)的n行 u ? ? ? //撤銷上一步操作 U ? ? ?//撤銷對(duì)當(dāng)前行的全部操作

搜索:

/vpser ? ? //向光標(biāo)下搜索vpser字符串 ?vpser????//向光標(biāo)上搜索vpser字符串 n ? ? ? ? ? //向下搜索前一個(gè)搜素動(dòng)作 N ? ? ? ?? ?//向上搜索前一個(gè)搜索動(dòng)作

跳轉(zhuǎn):

n+ ? ? ? ?//向下跳n行 n- ? ? ? ? //向上跳n行 nG ? ? ? ?//跳到行號(hào)為n的行 G ? ? ? ? ? //跳至文件的底部

設(shè)置行號(hào):

:set ?nu ? ? //顯示行號(hào) :set nonu ? ?//取消顯示行號(hào)

復(fù)制:

yy ? ?//將當(dāng)前行拷貝到緩存區(qū)。也能夠用 "ayy 復(fù)制,"a 為緩沖區(qū),a也能夠替換為a到z的隨意字母,能夠完畢多個(gè)復(fù)制任務(wù)。 nyy ? //將當(dāng)前行向下n行拷貝到緩沖區(qū)。也能夠用 "anyy 復(fù)制。"a 為緩沖區(qū),a也能夠替換為a到z的隨意字母,能夠完畢多個(gè)復(fù)制任務(wù)。 yw ? ?//復(fù)制從光標(biāo)開始到詞尾的字符。 nyw ? //復(fù)制從光標(biāo)開始的n個(gè)單詞。 y^ ? ? ?//復(fù)制從光標(biāo)到行首的內(nèi)容。?

y$ ? ? ?//復(fù)制從光標(biāo)到行尾的內(nèi)容。 p ? ? ? ?//粘貼剪切板里的內(nèi)容在光標(biāo)后,假設(shè)使用了前面的自己定義緩沖區(qū),建議使用"ap 進(jìn)行粘貼。

P ? ? ? ?//粘貼剪切板里的內(nèi)容在光標(biāo)前,假設(shè)使用了前面的自己定義緩沖區(qū),建議使用"aP 進(jìn)行粘貼。

替換:

:s/old/new ? ? ?//用new替換行中首次出現(xiàn)的old :s/old/new/g ? ? ? ??//用new替換行中全部的old :n,m?s/old/new/g ? ? //用new替換從n到m行里全部的old :%s/old/new/g ? ? ?//用new替換當(dāng)前文件中全部的old

編輯其它資源:

:e otherfilename ? ?//編輯文件名稱為otherfilename的文件。

改動(dòng)文件格式:

:set fileformat=unix ? //將文件改動(dòng)為unix格式,如win以下的文本文件在linux下會(huì)出現(xiàn)^M。


客串答案

  c傳遞參數(shù)都是值傳遞的,指針的一個(gè)作用是為了解決實(shí)現(xiàn)類似引用的效果,另外,使用指針能夠直接操作內(nèi)存!

  孫鶴同學(xué)的解釋:

  每一個(gè)線程有固定大小的棧,通常主線程的棧默認(rèn)通常是8M,用指針去引用內(nèi)存,往往是在使用堆內(nèi)存,棧是有限的,而且受生存期影響,所以用堆的情況要比用棧很多其它,有些東西生存期非常長(zhǎng),超過一個(gè)函數(shù)的調(diào)用。那么就須要用堆內(nèi)存。


?本篇到此 希望對(duì)大家有幫助

?

?

?

?

下載地址:http://www.vim.org/scripts/script.php?

script_id=273 “Tag List" 插件是一個(gè)為VIM編寫的源碼瀏覽插件,須要ctags的支撐 ,直接能夠在左邊列出函數(shù)列表,全局參數(shù)列表,宏。(能夠排序) 1、下載taglist.zip文件,解壓到$HOME/.vim文件夾下,或者$HOME/vimfiles或$VIM/vimfiles文件夾下。在這一步后,你應(yīng)該有這兩個(gè)文件(文件夾結(jié)構(gòu)應(yīng)該被保留) ?????????plugin/taglist.vim?- taglist 插件文件 ?????????doc/taglist.txt????-? 文檔(幫助)文件 2. 進(jìn)入 $HOME/.vim/doc 或者 $HOME/vimfiles/doc 或者 $VIM/vimfiles/doc? ??? 文件夾, 執(zhí)行Vim,在命令行模式下執(zhí)行 ":helptags?." 命令處理taglist幫助文件,假設(shè)沒有這上步,你將不能得到taglist幫助提示 3、假設(shè)ctags工具不在你的PATH搜索路徑中,你須要在$HOME/.vimrc中設(shè)置Tlist_Ctags_Cmd 變量指出ctags的路徑。 4、假設(shè)你執(zhí)行的是terminal/console版本號(hào)的VIM,以及terminal 不支持改變窗體的寬度,你須要在$/HOME/.vimrc設(shè)置??? 'Tlist_Inc_Winwidth'? 變量為0, 5、重新啟動(dòng)vim 6、你能夠在vim的命令行模式中使用 ":TlistToggle" 命令打開/關(guān)閉taglist窗體。你能夠使用 ":help taglist" 命令得到很多其它的關(guān)于使用taglist插件的信息

?

?

NERDTree的安裝和使用2009-09-03 12:47
NERDTree來自: http://www.vim.org/scripts/script.php?script_id=1658 A。安裝。

1,解壓后,拷貝plugin/NERD_tree.vim文件到~/.vim/plugin下。拷貝doc/NERD_tree.txt文件到~/.vim/doc下 2,打開vim,載入文檔。 :helptags ~/.vim/doc/NERD_tree.txt 以后查看幫助僅僅要 :h NERD_tree.txt 就可以。 B。經(jīng)常使用使用。 1。標(biāo)簽。

1 - 1。打開一個(gè)文件夾。

:NERDTree ~/share/abc 1 - 2。標(biāo)記它。 :Bookmark your_mark_name_of_abc 1 - 3。打開這個(gè)標(biāo)簽。 :NERDTree your_mark_name_of_abc? 效果同 1 - 1。 2,高速幫助光標(biāo)在NERDTree的文件夾工作區(qū)時(shí)候,按?

鍵。

?

去除高亮

方法一::nohlsearch 方法二:/awertgvcxz (查找一個(gè)肯定不存在的字符串) 設(shè)置了高亮搜索(:set hlsearch)以后,能夠通過 :set nohlsearch 永久地關(guān)閉高亮 顯示,也能夠通過 :nohlsearch 臨時(shí)關(guān)閉高亮顯示。下次搜索時(shí)將自己主動(dòng)恢復(fù)高亮。轉(zhuǎn)自:http://9esuluciano.javaeye.com/blog/137333 怎么改動(dòng)當(dāng)前文件的文件名稱

最相近的方法是 :saveas xxx 可是原文件還是存在的



this is the same way to same the file

then you need to delete the original file


轉(zhuǎn)載于:https://www.cnblogs.com/blfshiye/p/5219351.html

總結(jié)

以上是生活随笔為你收集整理的vim note(6)--vim的一个较全的介绍(转)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。