vim第一個小技巧:有時當我們使用普通用戶打開一個文件,修改了很多內容,在保存的時候才發現沒有權限,此時需要使用sudo來寫入,命令如下:
:w !sudo tee %
vim常用設置:(寫入 /etc/vimrc 文件或者~/.vimrc,永久生效)
set nu! " 顯示行號
set tabstop=4 " tab鍵爲4個空格
set autoindent " 換行自動縮進
set shiftwidth=4 " 自動縮進時的寬度
set ts=4 " tabstop的寬度
set softtabstop=4 " 退格鍵
set paste " 粘貼時不自動換行
set laststatus=2 " 顯示當前文件名
%retab! " vim屬性修改後需要執行此命令重載屬性配置
也可在終端設置是否顯示行號:
:set nu " 顯示行號
:set nonu " 不顯示行號
將所有tab,每個tab替換爲4個空格
:set ts=4
:set expandtab
:%retab!
將所有空格以4個爲單位,替換成tab
空格替換爲TAB:
:set ts=4
:set noexpandtab
:%retab!
vim字符串替換
:s/old/new/ " 當前行old的第一次出現改爲new
:s/old/new/g " 當前行所有old改爲new
:50,100s/old/new/g " 當前文件50到100行所有old改爲new
:1,$s/old/new/g " 當前文件所有old改爲new
:%,$s/old/new/g " 當前文件所有old改爲new
撤銷和恢復
u:撤銷上一步的操作
Ctrl+r:恢復上一步撤銷的操作
如果在終端要使用vim打開多個文件,可以:
橫向分割顯示:
vim -o filename1 filename2
縱向分割顯示:
vim -O filename1 filename2
如果已經用vim打開了一個文件,想要在窗口中同時再打開另一個文件(其中,vs可以用vsplit替換,sp可以用split替換,如果finename不存在,則會新建該文件並打開):
橫向分割顯示:
:vs filename
縱向分割顯示:
sp filename
關閉光標所在的窗口
:q
或
:close
關閉除光標所在的窗口之外的其他窗口
:only
關閉所有窗口
:qa
切換窗口
ctrl + w w " 即按住ctrl鍵,再按兩下w鍵。
或
ctrl + w " 即按住ctrl鍵,按一次w鍵,再按一次表示方向的h或j或k或l,則光標會切換到當前窗口的 左|下|上|右 側的窗口
文件間切換
Ctrl+6 " 下一個文件
:bn " 下一個文件
:bp " 上一個文件
vim 臨時退出
方法一:使用 Ctrl-z 以及 fg 這兩個命令組合。
這一解決方法主要利用了 Linux/Unix 的作業機制。
具體原理是:Ctrl-z 命令將當前的 Vi/Vim 進程放到後臺執行,之後 shell 環境即可爲你所用;
fg 命令則將位於後臺的 Vi/Vim 進程放到前臺執行,這樣我們就再次進入 Vi/Vim 操作界面並恢復到原先的編輯狀態。
方法二:使用行命令 :sh。
在 Vi/Vim 的正常模式下輸入 :sh即可進入 Linux/Unix shell 環境。在要返回到 Vi/Vim 編輯環境時,輸入 exit 命令即可。
這兩種方法實現機制不一定,但效果一樣,都非常快捷有效。