1. 程式人生 > >vim中文速查表

vim中文速查表

##############################################################################
# VIM CHEATSHEET (中文速查表)  -  by skywind (created on 2017/10/12)
# Version: 20, Last Modified: 2018/02/24 14:30
# https://github.com/skywind3000/awesome-cheatsheets
##############################################################################




##############################################################################
# 游標移動
##############################################################################


h                   游標左移,同 <Left> 鍵
j                   游標下移,同 <Down> 鍵
k                   游標上移,同 <Up> 鍵
l                   游標右移,同 <Right> 鍵
CTRL-f              下一頁
CTRL-b              上一頁
CTRL-u              上移半屏
CTRL-d              下移半屏
0                   跳到行首(是數字零,不是字母O),效用等同於 <Home> 鍵
^                   跳到從行首開始第一個非空白字元
$                   跳到行尾,效用等同於 <End> 鍵
gg                  跳到第一行,效用等同於 CTRL+<Home>
G                   跳到最後一行,效用等同於 CTRL+<End>
nG                  跳到第n行,比如 10G 是移動到第十行
:n                  跳到第n行,比如 :10<回車> 是移動到第十行
10%                 移動到檔案 10% 處
15|                 移動到當前行的 15列
w                   跳到下一個單詞開頭 (word: 標點或空格分隔的單詞)
W                   跳到下一個單詞開頭 (WORD: 空格分隔的單詞)
e                   跳到下一個單詞尾部 (word: 標點或空格分隔的單詞)
E                   跳到下一個單詞尾部 (WORD: 空格分隔的單詞)
b                   上一個單詞頭 (word: 標點或空格分隔的單詞)
B                   上一個單詞頭 (WORD: 空格分隔的單詞)
ge                  上一個單詞尾
)                   向前移動一個句子(句號分隔)
(                   向後移動一個句子(句號分隔)
}                   向前移動一個段落(空行分隔)
{                   向後移動一個段落(空行分隔)
<enter>             移動到下一行首個非空字元
+                   移動到下一行首個非空字元(同回車鍵)
-                   移動到上一行首個非空字元
H                   移動到螢幕上部
M                   移動到螢幕中部
L                   移動到螢幕下部
fx                  跳轉到下一個為 x 的字元
Fx                  跳轉到上一個為 x 的字元
tx                  跳轉到下一個為 x 的字元前
Tx                  跳轉到上一個為 x 的字元前
;                   跳到下一個 f/t 搜尋的結果
,                   跳到上一個 f/t 搜尋的結果
<S-Left>            按住 SHIFT 按左鍵,向左移動一個單詞
<S-Right>           按住 SHIFT 按右鍵,向右移動一個單詞
<S-Up>              按住 SHIFT 按上鍵,向上翻頁
<S-Down>            按住 SHIFT 按下鍵,向下翻頁
gm                  移動到行中
gj                  游標下移一行(忽略自動換行)
gk                  游標上移一行(忽略自動換行)




##############################################################################
# 插入模式:進入退出
##############################################################################


i                   在游標處進入插入模式
I                   在行首進入插入模式
a                   在游標後進入插入模式
A                   在行尾進入插入模式
o                   在下一行插入新行並進入插入模式
O                   在上一行插入新行並進入插入模式
gi                  進入到上一次插入模式的位置
<ESC>               退出插入模式
CTRL-[              退出插入模式(同 ESC 等價,但更順手)




##############################################################################
# INSERT MODE - 由 i, I, a, A, o, O 等命令進入插入模式後
##############################################################################


<Up>                游標向上移動
<Down>              游標向下移動
<Left>              游標向左移動
<Right>             游標向右移動
<S-Left>            按住 SHIFT 按左鍵,向左移動一個單詞
<S-Right>           按住 SHIFT 按右鍵,向右移動一個單詞
<S-Up>              按住 SHIFT 按上鍵,向上翻頁
<S-Down>            按住 SHIFT 按下鍵,向下翻頁
<PageUp>            上翻頁
<PageDown>          下翻頁
<Delete>            刪除游標處字元
<BS>                Backspace 向後刪除字元
<Home>              游標跳轉行首
<End>               游標跳轉行尾
CTRL-w              向後刪除單詞
CTRL-o              臨時退出插入模式,執行單條命令又返回插入模式
CTRL-\ CTRL-o       臨時退出插入模式(游標保持),執行單條命令又返回插入模式
CTRL-r              插入暫存器(內部剪貼簿編號)內容
CTRL-r =            插入表示式計算結果
CTRL-f              自動縮排
CTRL-u              刪除當前行所有字元
CTRL-v {char}       插入非數字的字面量
CTRL-v {number}     插入三個數字代表的 ascii/unicode 字元
CTRL-v 065          插入 10進位制 ascii 字元(兩數字) 065 即 A字元
CTRL-v x41          插入 16進位制 ascii 字元(三數字) x41 即 A字元
CTRL-v o101         插入  8進位制 ascii 字元(三數字) o101 即 A字元
CTRL-v u1234        插入 16進位制 unicode 字元(四數字)
CTRL-v U12345678    插入 16進位制 unicode 字元(八數字)
CTRL-k {ch1} {ch2}  插入 digraph(見 :h digraph),快速輸入日文或符號等




##############################################################################
# 文字編輯
##############################################################################


r                   替換當前字元
R                   進入替換模式,直至 ESC 離開
s                   替換字元(刪除游標處字元,並進入插入模式,前可接數量)
S                   替換行(刪除當前行,並進入插入模式,前可接數量)
cc                  改寫當前行(刪除當前行並進入插入模式),同 S
cw                  改寫游標開始處的當前單詞
ciw                 改寫游標所處的單詞
caw                 改寫游標所處的單詞,並且包括前後空格(如果有的話)
c0                  改寫到行首
c^                  改寫到行首(第一個非零字元)
c$                  改寫到行末
ci"                 改寫雙引號中的內容
ci'                 改寫單引號中的內容
ci)                 改寫小括號中的內容
ci]                 改寫中括號中內容
ci}                 改寫大括號中內容
cit                 改寫 xml tag 中的內容
cis                 改寫當前句子
c2w                 改寫下兩個單詞
ct(                 改寫到小括號前
x                   刪除當前字元,前面可以接數字,3x代表刪除三個字元
X                   向前刪除字元
dd                  刪除當前行
d0                  刪除到行首
d^                  刪除到行首(第一個非零字元)
d$                  刪除到行末
D                   刪除到行末(同 d$)
dw                  刪除當前單詞
diw                 刪除游標所處的單詞
daw                 刪除游標所處的單詞,幷包含前後空格(如果有的話)
di"                 刪除雙引號中的內容
di'                 刪除單引號中的內容
di)                 刪除小括號中的內容
di]                 刪除中括號中內容
di}                 刪除大括號中內容
dit                 刪除 xml tag 中的內容
dis                 刪除當前句子
d2w                 刪除下兩個單詞
dt(                 刪除到小括號前
dgg                 刪除到檔案頭部
dG                  刪除到檔案尾部
d}                  刪除下一段
d{                  刪除上一段
u                   撤銷
U                   撤銷整行操作
CTRL-R              重複
J                   連結多行為一行
.                   重複上一次操作
~                   替換大小寫
g~iw                替換當前單詞的大小寫
gUiw                將單詞轉成大寫
guiw                將當前單詞轉成小寫
<<                  減少縮排
>>                  增加縮排
==                  自動縮排
CTRL-a              增加數字
CTRL-x              減少數字




##############################################################################
# 複製貼上
##############################################################################


p                   貼上到游標後
P                   貼上到游標前
v                   開始標記
y                   複製標記內容
V                   開始按行標記
CTRL-v              開始列標記
y$                  複製當前位置到本行結束的內容
Y                   複製到行末,同 yy
yy                  複製當前行
yiw                 複製當前單詞
3yy                 複製游標下三行內容
v0                  選中當前位置到行首
v$                  選中當前位置到行末
viw                 選中當前單詞
vi)                 選中小括號內的東西
vi]                 選中中括號內的東西
vis                 選中句子中的東西
gv                  重新選擇上一次選中的文字
:set paste          設定貼上模式(避免貼上時自動縮排影響格式)
:set nopaste        光比刪除模式
"?yy                複製當前行到暫存器 ? ,問號代表 0-9 的暫存器名稱
"?p                 將暫存器 ? 的內容貼上到游標後
"?P                 將暫存器 ? 的內容貼上到游標前
:registers          顯示所有暫存器內容
:[range]y           複製範圍,比如 :20,30y 是複製20到30行,:10y 是複製第十行
:[range]d           刪除範圍,比如 :20,30d 是刪除20到30行,:10d 是刪除第十行
ddp                 交換兩行內容:先刪除當前行復制到暫存器,並貼上




##############################################################################
# 文字物件 - c,d,v,y 等命令後接文字物件,一般為:<範圍 i/a><型別>
##############################################################################


$                   到行末
0                   到行首
^                   到行首非空字元
tx                  游標位置到字元 x 之前
fx                  游標位置到字元 x 之處
iw                  整個單詞(不包括分隔符)
aw                  整個單詞(包括分隔符)
iW                  整個 WORD(不包括分隔符)
aW                  整個 WORD(包括分隔符)
is                  整個句子(不包括分隔符)
is                  整個句子(不包括分隔符)
i)                  小括號內
a)                  小括號內(包含小括號本身)
i]                  中括號內
a]                  中括號內(包含中括號本身)
i}                  大括號內
a}                  大括號內(包含大括號本身)
i'                  單引號內
a'                  單引號內(包含單引號本身)
i"                  雙引號內
a"                  雙引號內(包含雙引號本身)




##############################################################################
# 查詢替換
##############################################################################


/pattern            從游標處向檔案尾搜尋 pattern
?pattern            從游標處向檔案頭搜尋 pattern
n                   向同一方向執行上一次搜尋
N                   向相反方向執行上一次搜尋
*                   向前搜尋游標下的單詞
#                   向後搜尋游標下的單詞
:s/p1/p2/g          將當前行中全替換p1為p2
:%s/p1/p2/g         將當前檔案中全替換p1為p2
:%s/p1/p2/gc        將當前檔案中全替換p1為p2,並且每處詢問你是否替換
:10,20s/p1/p2/g     將第10到20行中所有p1替換為p2
:%s/1\\2\/3/123/g   將“1\2/3” 替換為 “123”(特殊字元使用反斜槓標註)




##############################################################################
# 位置跳轉
##############################################################################


CTRL-o              跳轉到上一個位置
CTRL-i              跳轉到下一個位置
CTRL-^              跳轉到 alternate file (當前視窗的上一個檔案)
%                   跳轉到 {} () [] 的匹配
gd                  跳轉到定義
[[                  跳轉到上一個頂層函式(比如C語言以大括號分隔)
]]                  跳轉到下一個頂層函式(比如C語言以大括號分隔)
[m                  跳轉到上一個成員函式
]m                  跳轉到下一個成員函式
[{                  跳轉到上一處未匹配的 {
]}                  跳轉到下一處未匹配的 }
[(                  跳轉到上一處未匹配的 (
])                  跳轉到下一處未匹配的 )
[c                  上一個不同處(diff時)
]c                  下一個不同處(diff時)
[/                  跳轉到 C註釋開頭
]/                  跳轉到 C註釋結尾




##############################################################################
# VISUAL MODE - 由 v, V, CTRL-v 進入的可視模式
##############################################################################


>                   增加縮排
<                   減少縮排
d                   刪除文字
c                   改寫文字
y                   拷貝文字
~                   轉換大小寫
o                   跳轉到標記區的另外一端
O                   跳轉到標記塊的另外一端
u                   標記區轉換為小寫
U                   標記區轉換為大寫
<Esc>               退出可視模式




##############################################################################
# 檔案操作
##############################################################################


:w                  儲存檔案
:w <filename>       按名稱儲存檔案
:e <filename>       開啟檔案並編輯
:saveas <filename>  另存為檔案
:r <filename>       讀取檔案並將內容插入到游標後
:r !dir             將 dir 命令的輸出捕獲並插入到游標後
:close              關閉檔案
:q                  退出
:q!                 強制退出
:wa                 儲存所有檔案
:cd <path>          切換 Vim 當前路徑
:pwd                顯示 Vim 當前路徑
gf                  開啟名稱為游標下檔名的檔案
:new                開啟一個新的視窗編輯新檔案
:enew               在當前視窗建立新檔案
:vnew               在左右切分的新視窗中編輯新檔案
:tabnew             在新的標籤頁中編輯新檔案




##############################################################################
# 快取操作
##############################################################################


:ls                 查案快取列表
:bn                 切換到下一個快取
:bp                 切換到上一個快取
:bd                 刪除快取
:b 1                切換到1號快取
:b abc              切換到檔名為 abc 開頭的快取
:badd <filename>    將檔案新增到快取列表
:set hidden         設定隱藏模式(未儲存的快取可以被切換走,或者關閉)
:set nohidden       關閉隱藏模式(未儲存的快取不能被切換走,或者關閉)
n CTRL-^            切換快取,先輸入數字的快取編號,再按 CTRL + 6




##############################################################################
# 視窗操作
##############################################################################


:sp <filename>      上下切分視窗並在新視窗開啟檔案 filename
:vs <filename>      左右切分視窗並在新視窗開啟檔案 filename
CTRL-w s            上下切分視窗
CTRL-w v            左右切分視窗
CTRL-w w            迴圈切換到下一個視窗
CTRL-w W            迴圈切換到上一個視窗
CTRL-w p            跳到上一個訪問過的視窗
CTRL-w c            關閉當前視窗
CTRL-w o            關閉其他視窗
CTRL-w h            跳到左邊的視窗
CTRL-w j            跳到下邊的視窗
CTRL-w k            跳到上邊的視窗
CTRL-w l            跳到右邊的視窗
CTRL-w +            增加當前視窗的行高,前面可以加數字
CTRL-w -            減少當前視窗的行高,前面可以加數字
CTRL-w <            減少當前視窗的列寬,前面可以加數字
CTRL-w >            增加當前視窗的列寬,前面可以加數字
CTRL-w =            讓所有視窗寬高相同
CTRL-w H            將當前視窗移動到最左邊
CTRL-w J            將當前視窗移動到最下邊
CTRL-w K            將當前視窗移動到最上邊
CTRL-w L            將當前視窗移動到最右邊
CTRL-w x            交換視窗
CTRL-w f            在新視窗中開啟名為游標下檔名的檔案
CTRL-w gf           在新視窗中開啟名為游標下檔名的檔案
CTRL-w R            旋轉視窗
CTRL-w T            將當前視窗移到新的標籤頁中
CTRL-w P            跳轉到預覽視窗
CTRL-w z            關閉預覽視窗




##############################################################################
# 標籤頁
##############################################################################


:tabs               顯示所有標籤頁
:tabe <filename>    在新標籤頁中開啟檔案 filename
:tabn               下一個標籤頁
:tabp               上一個標籤頁
:tabc               關閉當前標籤頁
:tabo               關閉其他標籤頁
:tabn n             切換到第n個標籤頁,比如 :tabn 3 切換到第三個標籤頁
:tabm n             標籤移動
ngt                 切換到第n個標籤頁,比如 2gt 將會切換到第二個標籤頁
gt                  下一個標籤頁
gT                  上一個標籤頁




##############################################################################
# 書籤
##############################################################################


:marks              顯示所有書籤
ma                  儲存當前位置到書籤 a ,書籤名可以用 a-z 26個字母
'a                  跳轉到書籤 a所在的行
`a                  跳轉到書籤 a所在位置
`.                  跳轉到上一次編輯的行
'A                  跳轉到全文書籤 A


 
##############################################################################
# 常用設定
##############################################################################


:set nocompatible   設定不相容原始 vi 模式(必須設定在最開頭)
:set bs=?           設定BS鍵模式,現代編輯器為 :set bs=eol,start,indent
:set sw=4           設定縮排寬度為 4
:set ts=4           設定製表符寬度為 4
:set noet           設定不展開 tab 成空格
:set et             設定展開 tab 成空格
:set winaltkeys=no  設定 GVim 下正常捕獲 ALT 鍵
:set nowrap         關閉自動換行
:set ttimeout       允許終端按鍵檢測超時(終端下功能鍵為一串ESC開頭的掃描碼)
:set ttm=100        設定終端按鍵檢測超時為100毫秒
:set term=?         設定終端型別,比如常見的 xterm
:set ignorecase     設定搜尋是否忽略大小寫
:set list           設定顯示製表符和換行符
:set number         設定顯示行號,禁止顯示行號可以用 :set nonumber
:set paste          進入貼上模式(貼上時禁用縮排等影響格式的東西)
:set nopaste        結束貼上模式
:set spell          允許拼寫檢查
:set hlsearch       設定高亮查詢
:set ruler          總是顯示游標位置
:set incsearch      查詢輸入時動態增量顯示查詢結果
:set insertmode     Vim 始終處於插入模式下,使用 ctrl-o 臨時執行命令
:set all            列出所有選項設定情況
:syntax on          允許語法高亮
:syntax off         禁止語法高亮




##############################################################################
# 幫助資訊
##############################################################################


:h tutor            入門文件
:h quickref         快速幫助
:h index            查詢 Vim 所有鍵盤命令定義
:h CTRL-H           查詢正常模式下 CTRL-H 是幹什麼的
:h i_CTRL-H         查詢插入模式下 CTRL-H 是幹什麼的
:h i_<Up>           查詢插入模式下方向鍵上是幹什麼的
:h pattern.txt      正則表示式幫助
:h eval             指令碼編寫幫助
:h function-list    檢視 VimScript 的函式列表 
:h windows.txt      視窗使用幫助
:h tabpage.txt      標籤頁使用幫助
:h +timers          顯示對 +timers 特性的幫助
:h :!               檢視如何執行外部命令
:h set-termcap      檢視如何設定按鍵掃描碼
:version            顯示當前 Vim 的版本號和特性




##############################################################################
# 外部命令
##############################################################################


:!ls                執行外部命令 ls,並等待返回
:r !ls              將外部命令 ls 的輸出捕獲,並插入到游標後
:w !sudo tee %      sudo以後儲存當前檔案
:call system('ls')  呼叫 ls 命令,但是不顯示返回內容
:!start notepad     Windows 下啟動 notepad,最前面可以加 silent
:sil !start cmd     Windows 下當前目錄開啟 cmd
:%!prog             執行文字過濾程式,如整理 json格式 :%!python -m json.tool




##############################################################################
# Quickfix 視窗
##############################################################################
:copen              開啟 quickfix 視窗(檢視編譯,grep等資訊)
:copen 10           開啟 quickfix 視窗,並且設定高度為 10
:cclose             關閉 quickfix 視窗
:cfirst             跳到 quickfix 中第一個錯誤資訊
:clast              跳到 quickfix 中最後一條錯誤資訊
:cc [nr]            檢視錯誤 [nr]
:cnext              跳到 quickfix 中下一個錯誤資訊
:cprev              跳到 quickfix 中上一個錯誤資訊




##############################################################################
# 拼寫檢查
##############################################################################


:set spell          開啟拼寫檢查
:set nospell        關閉拼寫檢查
]s                  下一處錯誤拼寫的單詞
[s                  上一處錯誤拼寫的單詞
zg                  加入單詞到拼寫詞表中
zug                 撤銷上一次加入的單詞
z=                  拼寫建議




##############################################################################
# 程式碼摺疊
##############################################################################


za                  切換摺疊
zA                  遞迴切換摺疊
zc                  摺疊游標下程式碼
zC                  摺疊游標下所有程式碼
zd                  刪除游標下摺疊
zD                  遞迴刪除所有摺疊
zE                  刪除所有摺疊
zf                  建立程式碼摺疊
zF                  指定行數建立摺疊
zi                  切換摺疊
zM                  摺疊所有程式碼,設定 foldlevel=0,設定 foldenable
zR                  開啟所有程式碼,設定 foldlevel 為最大值
zn                  摺疊 none,重置 foldenable 並開啟所有程式碼
zN                  摺疊 normal,重置 foldenable 並恢復所有摺疊
zo                  開啟一層程式碼
zO                  開啟游標下所有程式碼摺疊




##############################################################################
# 巨集錄製
##############################################################################


qa                  開始錄製名字為 a 的巨集
q                   結束錄製巨集
@a                  播放名字為 a 的巨集
@:                  播放上一個巨集




##############################################################################
# 其他命令
##############################################################################


CTRL-E              向上卷屏
CTRL-Y              向下卷屏
CTRL-G              顯示正在編輯的檔名,以及大小和位置資訊
zz                  調整游標所在行到螢幕中央
zt                  調整游標所在行到螢幕上部
zb                  調整游標所在行到螢幕下部
ga                  顯示游標下字元的 ascii 碼或者 unicode 編碼
K                   查詢游標下單詞的幫助
:set ff=unix        設定換行為 unix
:set ff=dos         設定換行為 dos
:set ff?            檢視換行設定
:set nohl           清除搜尋高亮
:earlier 15m        回退到15分鐘前的檔案內容
:.!date             在當前視窗插入時間
:%!xxd              開始二進位制編輯
:%!xxd -r           儲存二進位制編輯
:r !curl -sL {URL}  讀取 url 內容新增到游標後




##############################################################################
# Plugin - https://github.com/tpope/vim-commentary
##############################################################################


gcc                 註釋當前行
gc{motion}          註釋 {motion} 所標註的區域,比如 gcap 註釋整段
gci{                註釋大括號內的內容
gc                  在 Visual Mode 下面按 gc 註釋選中區域
:7,17Commentary     註釋 7 到 17 行




##############################################################################
# Plugin - https://github.com/godlygeek/tabular
##############################################################################


:Tabularize /,      按逗號對齊
:Tabularize /=      按等於號對齊
:Tabularize /\|     按豎線對齊
:Tabularize /\|/r0  按豎線靠右對齊




##############################################################################
# Plugin - https://github.com/tpope/vim-unimpaired
##############################################################################


[space              向上插入空行
]space              向下插入空行
[e                  替換當前行和上一行
]e                  替換當前行和下一行
[x                  XML 編碼
]x                  XML 解碼
[u                  URL 編碼
]u                  URL 解碼
[y                  C 字串編碼
]y                  C 字串解碼
[q                  上一個 quickfix 錯誤
]q                  下一個 quickfix 錯誤
[Q                  第一個 quickfix 錯誤
]Q                  最後一個 quickfix 錯誤
[f                  切換同目錄裡上一個檔案
]f                  切換同目錄裡下一個檔案
[os                 設定 :set spell
]os                 設定 :set nospell
=os                 設定 :set invspell
[on                 顯示行號
]on                 關閉行號
[ol                 顯示回車和製表符 :set list
]ol                 不顯示回車和製表符 :set nolist
[b                  快取切換到上一個檔案,即 :bp
]b                  快取切換到下一個檔案,即 :bn
[B                  快取切換到第一個檔案,即 :bfirst
]B                  快取切換到最後一個檔案,即 :blast




##############################################################################
# Plugin - https://github.com/skywind3000/asyncrun.vim
##############################################################################


:AsyncRun ls        非同步執行命令 ls 結果輸出到 quickfix 使用 :copen 檢視
:AsyncRun -raw ls   非同步執行命令 ls 結果不匹配 errorformat




##############################################################################
# Plugin - https://github.com/vim-scripts/argtextobj.vim
##############################################################################


cia                 改寫函式引數
caa                 改寫函式引數(包括逗號分隔)
dia                 刪除函式引數
daa                 刪除函式引數(包括逗號分隔)
via                 選取函式引數
vaa                 選取函式引數(包括逗號分隔)
yia                 複製函式引數
yaa                 複製函式引數(包括逗號分隔)




##############################################################################
# 網路資源
##############################################################################


最新版本            https://github.com/vim/vim   
Windows 最新版      https://github.com/vim/vim-win32-installer/releases
外掛瀏覽            http://vimawesome.com
reddit              https://www.reddit.com/r/vim/
正確設定 ALT/BS 鍵  http://www.skywind.me/blog/archives/2021
視訊教程            http://vimcasts.org/
中文幫助            http://vimcdoc.sourceforge.net/doc/help.html
五分鐘指令碼入門      http://andrewscala.com/vimscript/
指令碼精通            http://learnvimscriptthehardway.stevelosh.com/
中文指令碼幫助        vimcdoc.sourceforge.net/doc/eval.html




##############################################################################
# References
##############################################################################


https://github.com/groenewege/vimrc/blob/master/vim_cheat_sheet.txt
http://blog.g-design.net/post/4789778607/vim-cheat-sheet
http://www.keyxl.com/aaa8263/290/VIM-keyboard-shortcuts.htm
http://jmcpherson.org/editing.html
http://www.fprintf.net/vimCheatSheet.html
http://www.ouyaoxiazai.com/article/24/654.html
http://bbs.it-home.org/thread-80794-1-1.html
http://www.lpfrx.com/wp-content/uploads/2008/09/vi.jpg
http://michael.peopleofhonoronly.com/vim/




# vim: set ts=4 sw=4 tw=0 noet noautoindent :