vim 学习笔记(基础篇)

  1 .    重复最后一个修改命令
  2 u 撤销最后命令
  3 U 恢复该行最初状态
  4 
  5 ++++++++++++++++++++++++++++++++++++++++++++
  6 x    删除字符
  7 X    删除光标左边字符
  8 D    删除至行尾
  9 C    修改至行尾
 10 s    修改字符
 11 S    修改行
 12 dfxxx    搜索+删除
 13 J    删除两行之间换行符
 14 dw    删除到下一个单词开头
 15 db    删除到前一个单词开头
 16 diw    删除单词(不包括空白)
 17 daw    删除单词(包括空白)    无需移动
 18 ~    修改光标下字母的大小写
 19 I    移动到当前行第一个非空字符并启动插入模式
 20 A    移动到行尾 启动插入模式
 21 c w 更改单词 并进入插入模式
 22 cis    修改句子
 23 cas    修改句子(包括空白)
 24 
 25 ctrl-w        "删除整个单词
 26 ctrl-u        "删除整行
 27 ctrl-u        "删除自第一个非空字符至光标之间的文本
 28 
 29 ++++++++++++++++++++++++++++++++++++++++++++
 30 P    插入到光标之前
 31 yy    复制整行
 32 Y    复制整行
 33 "*yy    拷贝到剪切版
 34 "*p        粘贴
 35 ++++++++++++++++++++++++++++++++++++++++++++
 36 :[range]substitute/from/to/[flags]
 37 
 38 /        向后查找
 39 ?        向前查找
 40 
 41 [range]    :        % 表示所有行
 42                 number    单个数值表示某一行
 43                 . 当前行
 44                 .,$    当前行到文件尾
 45 
 46                 ^xxx    以xxx为首的单词xxx
 47                 xxx$    以xxx为尾的单词xxx
 48                 ^xxx$    仅包括xxx的行
 49                 .        匹配任意字符
 50 
 51                 :'<,'>    标记之内的范围
 52 
 53 [flags]    :        g 表示所有匹配点
 54                 c 每次替换时确认
 55 在一行內替換頭一個字符串 old 為新的字符串 new,請輸入  :s/old/new
 56 在一行內替換所有的字符串 old 為新的字符串 new,請輸入  :s/old/new/g
 57 在兩行內替換所有的字符串 old 為新的字符串 new,請輸入  :#,#s/old/new/g
 58 在文件內替換所有的字符串 old 為新的字符串 new,請輸入  :%s/old/new/g
 59 進行全文替換時詢問用戶確認每個替換需添加 c 選項,請輸入 :%s/old/new/gc
 60 
 61 搜索中 . * [ ] ^ % / \ ? ~ ^ 需要\ 转义
 62 
 63 :set ic = :set ignorecase    搜索匹配的时候忽略大小写
 64 :set hlsearch    匹配高亮全部
 65 :set incsearch    增量(输入即高亮)
 66 :set wrapscan    到文件尾自动折返
 67 ==================================================================
 68 移动
 69 w b        词首
 70 e ge    词尾
 71 ^  $  0  行首尾
 72 fx 向前查找本行的字符    x    (可计数) nfx
 73 Fx 向后
 74 tx 到查找字符的前一字符  (to some-word)
 75 Tx
 76 
 77 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 78 %  括号匹配
 79 nG    移动到第几行
 80 n%    移动到文件的n%部分
 81 H    M    L    移动到屏幕的某个部分
 82 
 83 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 84 滚动半屏    滚动一行    滚动一页
 85 ctrl-u        ctrl-e        ctrl-f
 86   |              |               |
 87 ctrl-d        ctrl-y        ctrl-b
 88 zz        光标行处于屏幕中间
 89 zt        光标行处于屏幕顶间
 90 zb        光标行处于屏幕底间
 91 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 92 
 93 ++++++++++++++++++++++++++++++++++++++++++++
 94 可视模式
 95 o    other end
 96 O    另一个对角
 97 ~    交换大小写
 98 U    转换为大写
 99 u    转换为小写
100 r    以某个字符填充
101 >    平移
102 <    平移
103 :set shiftwidth=4    "平移距离
104 J    删除选中行的所有换行符
105 gv    重复上次的可视选择
106 ++++++++++++++++++++++++++++++++++++++++++++
107 :set compatible?  "是否关闭兼容模式
108 :scriptnames    "所有配置脚本
109 :set showmode   
110 :set number
111 :set ruler        "右下角显示当前光标位置
112 :set backup        "保留备份
113 :set history    "命令历史
114 :set showcmd    "显示未完成的命令
115 :set syntax on    "语法高亮
116 :set filetype plugin indent on    "文件类型探测
117 :set iskeyword+=xxx
118 :set iskeyword-=xxx
119 :set cmdheight=n    "消息显示的空间
120 :set wrap        "回绕行
121 :set matchtime=15        "括号匹配时间
122 :set whichwrap=b,s,<,>,[,]                "命令可在多行移动
123 --------------------------------------------
124 :syntax enable    "自动检测类型并高亮
125 :set filetype
126 :set filetype=abcde
127 :set background=dark/light/.....    "设置背景色
128 :syntax reset
129 :colorscheme xxxxx    "主题挑选
130 ~/.vim/color/*            "当前用户*/
131 :runtime syntax/colortest.vim
132 :syntax clear
133 :syntax off
134 :syntax manual=ON/OFF
135 --------------------------------------------
136 vimrc
137 
138 "在一行大于n个字符时自动换行
139 autocmd FileType text setlocal textwidth=n
140 
141 --------------------------------------------
142 plugin
143 
144 "文件类型插件    位于ftplugin/
145 :filetype plugin on
146 
147 ftplugin/<filetype>.vim
148 ftplugin/<filetype>_<name>.vim
149 ftplugin/<filetype>/<name>.vim
150 
151 mkdir ~/.vim
152 mkdir ~/.vim/plugin    or mkdir ~/.vim/plugin/x/xx.vim
153 mkdir ~/.vim/ftplugin
154 --------------------------------------------
155 文件操作
156 :edit
157 :hide
158 :write
159 :write >> somefile        "将文本写入到文件的末尾
160 :saveas some.file        "另存为
161 :file some.file            "改变文件名 但不立即保存(未编辑文件)
162 :next
163 :args
164 :previous
165 :last
166 :first
167 :nlast    /:nfirst
168 :read file                "将file插入到当前文件光标之下
169 
170 :set autowrite
171 :set backupext=.bak        "以.bak为备份文件的后缀名
172 :set fileformat=unix    "文件格式转换为unix(或者dos)
173 vim -R file                "只读方式打开
174 view file                "只读方式打开
175 vim -M file                "禁止文件修改方式打开
176 :set modifiable        :set write    "去掉保护
177 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
178 ctrl-^    文件之间跳转
179 '"    标记上次离开文件的位置
180 '.    最后一次修改文件的位置
181 跳转
182 nG跳转至n行        ''    "回到跳转时的行(单引号可以)
183 ctrl-o    跳到较老的地方
184 ctrl-i    跳到较新的地方
185 
186 ctrl-] 跳转
187 ctrl-O 跳回
188 ctrl-t 跳转
189 
190 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
191 标记    bookmark
192 m+小写字母    可使用26个字母标记
193 '+小写字母    跳转字母标记
194 :marks    获取标记列表
195 
196 '    跳转前的光标位置
197 "    最后编辑的光标位置
198 [    最后修改的开始位置
199 ]    最后修改的结束位置
200 
201 m+大写字母    全局文件标记
202 50%mX        在文件中间(50%)的地方标记为X
203 '+大写字母
204 :mark+字母    "获取字母所在
205 
206 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
207 使用寄存器
208 "xyas        "将句子拷贝到寄存器f中
209 "x3y        "拷贝三个整行到寄存器x中
210 "xyiw        "拷贝一个单词到X中
211 "可视区域xy    "拷贝可视区域到x
212 "xp            "将X中内容复制
213 "wdaw        "将一个单词删除进入寄存器w中
214 
215 ctrl-R{register}        "插入寄存器里面的内容
216 :iabbrev xx    xxxxx    "缩写
217 :abclear            "删除缩写
218 
219 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
220 
221 --------------------------------------------
222 窗口:split
223 "带有“====”为状态栏
224 ctrl-w ctrl-w        "窗口切换
225 :close
226 :only
227 :split somefile
228 :new                "打开窗口编辑新文件
229 :nsplit                "打开n个窗口
230 ctrl-w +            "可带前缀
231 ctrl-w -            "可带前缀
232 {height}ctrl-w _    "窗口设置为指定高度
233 
234 :vsplit                "垂直分割
235 :vnew
236 :vertical new
237 
238 
239 ctrl-w h
240 ctrl-w j
241 ctrl-w k
242 ctrl-w l
243 
244 ctrl-w t            "跳转到最顶上的窗口
245 ctrl-w b            "跳转到最下面的窗口
246 :qall                "对所有窗口命令
247 vim -o a b c d        "为每个文件打开一个窗口(水平)
248 :vertical all
249 
250 vimdiff a b
251 :vertical diffsplit file
252 
253 标签页
254 :tabedit
255 goto tab=gt命令
256 :tab some 建立另一个标签页
257 :tabonly
258 =================================
259 窗口标题
260 
261 -    不能修改
262 +    已修改
263 =    只读
264 =+    只读但被修改
265 
266 :set guioption-=T        "删除T标记
267 
268 :behave xterm        :behave mswin        "鼠标行为
269 =================================
270 宏
271 
272 q{register}q        "录入宏
273 @{register}            "查看宏
274 @@                    "重复上一个宏命令
275 宏可以通过复制粘贴等等进行修改
276 q+大写字母            "记录追加到相应小写字母
277 
278 =================================
279 global 命令
280 :[range]global/{pattern}/{command}
281 
282 :!{program}
283 :r !{program}
284 :w !{program}
285 :[] !{program}
286 =================================
287 排版
288 :set textwidth=80
289 gqap        "排版当前段落
290 gggqG        "排版整个文档
291 guu    gUU    g~~    "整行大小写变换
292 
293 :{range}center [width]        "使一定范围内的行居中
294 :{range}right  [width]        "使一定范围内的行右对其
295 :{range}leftt  [width]        "使一定范围内的行左对其
296 :set autoindent
297 :set list                    "显示TAB
298 :set listchars=tab:>-,trail:-    "显示为">----"
299 :set softtabstop=4            "tab设置
300 :set linebreak                "断词
301 :g/./,/^$/join                "变段为行
302 :set virtualedit=all        "光标再没有文本的位置 被设置为虚拟空间
303 :set virtualedit=            " 返回光标非虚拟状态
304 =================================
305 !{motion}{program}            "使用外部程序 以文本块尾输入以程序输出替换文本块
306 
307 !!date                    "加时间戳(以date输出代替当前行)
308 :read !ls                "把当前目录的内容读入文件
309 :write !wc                "统计字数
310 =================================
311 tools
312 :g/^/m 0                "反转行顺序
313 g+ctrl+G                "单词统计
314 :%s/\s\+$//                "删除行尾空格
315 
316 ctrl-g 用于顯示當前光標所在位置和文件狀態信息。
317 Shift-G 用于將光標跳 轉至文件最後一行。先敲入一個行號然後按 Shift-G 則是將光標移動至該行 號代表的行。
318 
319 :digraphs                "二合字母
320 =================================
321 命令行上面
322 ctrl-b        "行首
323 ctrl-e        "行尾
324 ctrl-w        "删除光标前的整个单词
325 ctrl-u        "删除整个命令
326 ctrl-c        "取消
327 ctrl-d        "查看匹配总览
328 :history    "显示历史命令
329 :history /    "搜索历史记录
330 q:            "打开命令行窗口
331 ctrl-o {command}        "在插入模式下执行普通模式的命令
332 
333 =================================
334 viminfo
335 
336 命令行 模式搜索的历史
337 寄存器
338 文件内标记
339 缓存其
340 全局变量
341 
342 '0            "返回中断处
343 :oldfiles    "曾经编辑的
344 
345 =================================
346 会话语法
347 视图语法
348 模式行
349 
350 =================================
351 整行补全                        CTRL-X CTRL-L
352 根据当前文件里关键字补全        CTRL-X CTRL-N
353 根据字典补全                    CTRL-X CTRL-K
354 根据同义词字典补全              CTRL-X CTRL-T
355 根据头文件内关键字补全          CTRL-X CTRL-I
356 根据标签补全                    CTRL-X CTRL-]
357 补全文件名                      CTRL-X CTRL-F
358 补全宏定义                      CTRL-X CTRL-D
359 补全vim命令                     CTRL-X CTRL-V
360 用户自定义补全方式              CTRL-X CTRL-U
361 拼写建议                        CTRL-X CTRL-S
362 智能补全                        CTRL-X CTRL-O
363 ctrl-n             ctrl-p
364 
365 ctrl-a        "将上次在插入模式下输入的文本再次输入一次
366 ctrl-@        "将上次在插入模式下输入的文本再次输入一次 并且返回到普通模式
367 ctrl-y        "复制文本(根据上一行文本)
368 ctrl-e        "复制文本(根据下一行文本)
369 =================================
370 :%!xxd        "二进制阅读
371 :%!xxd -r    "返回正常十进制
372 =================================
373 
374 $VIMRUNTIME/syntax/*    "有效的文件类型
375 $VIMRUNTIME/color/*        "色彩方案
376 $VIMRUNTIME/macros            "全局插件
377 $VIMRUNTIME/ftplugin        "文件类型插件
posted @ 2012-09-08 14:02  design0er  阅读(192)  评论(0编辑  收藏  举报

私信请邮件

destiny_1990@126.com