From bf467dce54422c3611e938e9dc9e50959a79dbf7 Mon Sep 17 00:00:00 2001 From: Tiande Date: Sat, 16 Jan 2016 18:23:45 +0800 Subject: [PATCH] =?UTF-8?q?markdown=20=E6=A0=BC=E5=BC=8F=E5=A4=AA=E9=9A=BE?= =?UTF-8?q?=E5=86=99=E4=BA=86=EF=BC=8C=E8=BF=87=E4=B8=80=E6=AE=B5=E5=86=8D?= =?UTF-8?q?=E6=94=B9=E5=A5=BD=E4=BA=86...?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tiande.md | 548 +++++++++++++++++++++++++++--------------------------- 1 file changed, 274 insertions(+), 274 deletions(-) diff --git a/tiande.md b/tiande.md index cfa31f2e..f388964d 100644 --- a/tiande.md +++ b/tiande.md @@ -1,337 +1,337 @@ 基本的 vim 操作就不介绍了,看过一本: [《VIM简明手册》](https://github.com/Tiande/Practice/blob/master/resource/VIM_Tutorial.md) -> **WARNING:** -> 全局的 就是指 , (逗号) 了 -> 里 'C' 是指 Ctrl , '-' 号无实际意义 -> 地址连接符不用 Win 的 \ ,均以 Unix 的 / 展示 -> 就是让你按空格 +**WARNING:** +全局的 就是指 , (逗号) 了 + 里 'C' 是指 Ctrl , '-' 号无实际意义 +地址连接符不用 Win 的 \ ,均以 Unix 的 / 展示 + 就是让你按空格 -> " Map to / (search) and Ctrl- to ? (backwards search) -> 绑定 到 / ? -> 但因为 为切换输入法,所以可能会无效 +" Map to / (search) and Ctrl- to ? (backwards search) +绑定 到 / ? +但因为 为切换输入法,所以可能会无效 -> " Disable highlight when is pressed -> ,开关搜索词高亮 -> 是回车的意思 +" Disable highlight when is pressed +,开关搜索词高亮 + 是回车的意思 -> " Smart way to move between windows -> 快速在窗口间切换 +" Smart way to move between windows + 快速在窗口间切换 -> " Switch CWD to the directory of the open buffer -> ,cd 切换工作目录到当前文件所在目录 +" Switch CWD to the directory of the open buffer +,cd 切换工作目录到当前文件所在目录 -> " Move a line of text using ALT+[jk] or Comamnd+[jk] on mac -> 移动当前行(或 visual 选中的多行),与上下的其他行互换 -> 炒鸡好玩!!!!(Mac 用户再见;) ) +" Move a line of text using ALT+[jk] or Comamnd+[jk] on mac + 移动当前行(或 visual 选中的多行),与上下的其他行互换 +炒鸡好玩!!!!(Mac 用户再见;) ) -> " Remove the Windows ^M - when the encodings gets messed up -> ,m 把该死的 utf-8 with BOM(DOS下) 文件格式末尾的 ^M 去掉 +" Remove the Windows ^M - when the encodings gets messed up +,m 把该死的 utf-8 with BOM(DOS下) 文件格式末尾的 ^M 去掉 -> " Quickly open a buffer for scribble -> ,q 快速打开一个 buffer +" Quickly open a buffer for scribble +,q 快速打开一个 buffer -> " Quickly open a markdown buffer for scribble -> ,x 快速打开一个 markdown buffer +" Quickly open a markdown buffer for scribble +,x 快速打开一个 markdown buffer -> " Toggle paste mode on and off -> ,pp 开关 paste mode +" Toggle paste mode on and off +,pp 开关 paste mode -> " Fast editing and reloading of vimrc configs -> ,e 快速打开 ./my_configs.vim +" Fast editing and reloading of vimrc configs +,e 快速打开 ./my_configs.vim -> " 如果需要折行 ,e 后,将 set nowrap 注释掉(行头加 ") +" 如果需要折行 ,e 后,将 set nowrap 注释掉(行头加 ") -> 目录补全: -> 输入模式下,按 开启,然后 上下选择 -> 你可以现在就试一下,先输入 . 然后使用快捷键补全成下面的样子: -> ./README.md +目录补全: +输入模式下,按 开启,然后 上下选择 +你可以现在就试一下,先输入 . 然后使用快捷键补全成下面的样子: +./README.md -> 打开地址下的文件: -> gf -> 例: ./README.md -> 光标移到地址下然后 gf 试试看! 可以使用 ,bd 关闭等下打开的窗口回到这里哦! +打开地址下的文件: +gf +例: ./README.md +光标移到地址下然后 gf 试试看! 可以使用 ,bd 关闭等下打开的窗口回到这里哦! -> MRU -> 打开最近使用文件列表 -> open: ,f -> close: q -> open file: o -> open with readonly: v -> open in new tab: t -> 可以使用 或者 ? 启用搜索 +MRU +打开最近使用文件列表 +open: ,f +close: q +open file: o +open with readonly: v +open in new tab: t +可以使用 或者 ? 启用搜索 -> to display only file names containing "vim" in them, you can use the following command ":MRU vim". # 其实就是关键词搜索 我更喜欢直接在 ,f 里 +to display only file names containing "vim" in them, you can use the following command ":MRU vim". # 其实就是关键词搜索 我更喜欢直接在 ,f 里 -> 主题啊!! 超多啊!! 自己也可以去加啊!! -> The 3rd theme: -> peaksea ir_black mayansmoke solarized pyte gruvbox +主题啊!! 超多啊!! 自己也可以去加啊!! +The 3rd theme: +peaksea ir_black mayansmoke solarized pyte gruvbox -> These are vim's default theme (大概是这些,可以在 vim 的 colors 里找到): -> blue darkblue default delek desert elflord evening koehler morning murphy pablo peachpuff ron shine slate torte zellner +These are vim's default theme (大概是这些,可以在 vim 的 colors 里找到): +blue darkblue default delek desert elflord evening koehler morning murphy pablo peachpuff ron shine slate torte zellner -> Edit your "my_configs.vim" (可以使用 ,e 直接打开) and modify: -> :colorscheme ir_black # or peaksea ... +Edit your "my_configs.vim" (可以使用 ,e 直接打开) and modify: +:colorscheme ir_black # or peaksea ... -> YankRing: -> 是一个粘贴强化的功能 -> 1. paste something first (p), then use to select previous yanks, changes and deletes. # p 之后, 就可以选啦! -> 2. to see a history of previous yanks, changes and deletes, use: -> ``` -> :YRShow -> ``` +YankRing: +是一个粘贴强化的功能 +1. paste something first (p), then use to select previous yanks, changes and deletes. # p 之后, 就可以选啦! +2. to see a history of previous yanks, changes and deletes, use: +``` +:YRShow +``` -> snipMate: -> 就是自动补全 -> 打代码很有用 -> just or to finish a definition, function, etc... +snipMate: +就是自动补全 +打代码很有用 +just or to finish a definition, function, etc... -> 例: 输入 date OR datetime 后, 按 就会补全日期啦! -> 2015-07-10 -> 2015-07-10 10:56 +例: 输入 date OR datetime 后, 按 就会补全日期啦! +2015-07-10 +2015-07-10 10:56 -> bufexplorer: -> 缓冲区浏览器 -> 缓冲区 和 缓存 感觉差不多 -> This Plugin can be opened with -> ,o -> 新标签打开 -> t -> close -> q -> delete 一个 -> d -> 手册: -> :help bufexplorer +bufexplorer: +缓冲区浏览器 +缓冲区 和 缓存 感觉差不多 +This Plugin can be opened with +,o +新标签打开 +t +close +q +delete 一个 +d +手册: +:help bufexplorer -> Close the current buffer (关闭当前编辑的文件) -> ,bd -> Close all the buffers (关闭所有 buffer) -> ,ba +Close the current buffer (关闭当前编辑的文件) +,bd +Close all the buffers (关闭所有 buffer) +,ba -> commentary -> 使用 gc gcc gcap 快速添加注释 -> gcc : 只注释/取消注释当前行 -> gc : 注释/取消注释选定区域 -> gcap : 注释/取消注释一个区块 +commentary +使用 gc gcc gcap 快速添加注释 +gcc : 只注释/取消注释当前行 +gc : 注释/取消注释选定区域 +gcap : 注释/取消注释一个区块 -> NERD Tree: -> 目录树 +NERD Tree: +目录树 -> 1. nn: NERDTreeToggle # 打开 -> 2. nf: NERDTreeFind # 在目录树定位到当前文件 -> 3. nb: NERDTreeFromBookmark # 打开目录树指定的 mark 文件 +1. nn: NERDTreeToggle # 打开 +2. nf: NERDTreeFind # 在目录树定位到当前文件 +3. nb: NERDTreeFromBookmark # 打开目录树指定的 mark 文件 -> 命令太多,可以自行查看: -> ,nn 后按 ? -> 友情提示: 可以快速的在 不同窗口 间切换! +命令太多,可以自行查看: +,nn 后按 ? +友情提示: 可以快速的在 不同窗口 间切换! -> ctrlp: -> Fuzzy file, buffer, mru and tag finder. -> 文件搜索 -> 不要在磁盘根目录打开,遍历文件会卡死 (不要问我为啥知道...) (使用 :pwd 查看当前目录) -> 三个打开命令随便哪个都行, 可以多按几次看不同效果,其他看帮助 +ctrlp: +Fuzzy file, buffer, mru and tag finder. +文件搜索 +不要在磁盘根目录打开,遍历文件会卡死 (不要问我为啥知道...) (使用 :pwd 查看当前目录) +三个打开命令随便哪个都行, 可以多按几次看不同效果,其他看帮助 -> 1. -> 2. -> 3. j # 在 ./my_configs.vim 中被 tab 切换快捷覆盖 +1. +2. +3. j # 在 ./my_configs.vim 中被 tab 切换快捷覆盖 -> for more info read the "./sources_non_forked/ctrlp.vim/readme.md" +for more info read the "./sources_non_forked/ctrlp.vim/readme.md" -> Taglist(现在项目用的是 TagBar ) -> 神器,列出所有函数声明 -> !!!! 你要自己去安装 ctags 快到官网愉快的下载吧。 -> open -> 该快捷键配置在 ./my_configs.vim -> ,tg -> 添加当前文件到 taglist (如果你勿用 d 删除了它): -> ,ta -> 在taglist窗口中看帮助: -> +Taglist(现在项目用的是 TagBar ) +神器,列出所有函数声明 +!!!! 你要自己去安装 ctags 快到官网愉快的下载吧。 +open +该快捷键配置在 ./my_configs.vim +,tg +添加当前文件到 taglist (如果你勿用 d 删除了它): +,ta +在taglist窗口中看帮助: + -> vim-multiple-cursors: -> 超好玩 -> 在 v 模式下 -> 从一个 word 开始选择,设置多焦点 -> 撤消最后一个选项 -> 跳过下一个目标 -> 退出 multiple-cursors 模式 +vim-multiple-cursors: +超好玩 +在 v 模式下 + 从一个 word 开始选择,设置多焦点 + 撤消最后一个选项 + 跳过下一个目标 + 退出 multiple-cursors 模式 -> 例: -> 使用 multiple-cursors 将下列 逗号 去掉并合并为一行: -> 1, -> 2, -> 3, -> 4, -> 5 -> 结果: -> 1 2 3 4 5 +例: +使用 multiple-cursors 将下列 逗号 去掉并合并为一行: +1, +2, +3, +4, +5 +结果: +1 2 3 4 5 -> vi-expand-region: -> 和 vim 中用 v V 的 visual 模式不同, -> 直接使用 + - 号来选择区块。 -> 智能度不行,但傻瓜易操作 +vi-expand-region: +和 vim 中用 v V 的 visual 模式不同, +直接使用 + - 号来选择区块。 +智能度不行,但傻瓜易操作 -> vim-airline: -> 就是状态栏的主题 -> 在 ,e 里配置你想要的色彩: -> let g:airline_theme="luna" +vim-airline: +就是状态栏的主题 +在 ,e 里配置你想要的色彩: +let g:airline_theme="luna" -> goyo: -> 简化页面元素,让你专心码字! -> 1. use z to into zoom mode ;) -> 2. use to zoom in/out ;) +goyo: +简化页面元素,让你专心码字! +1. use z to into zoom mode ;) +2. use to zoom in/out ;) -> vim-commentary: -> ;( +vim-commentary: +;( -> syntastic: -> 语法检查 -> ,,, 开关 -> 使用 ALT-n ALT-p 遍历出问题的行(MAC 下暂时不会映射按键) +syntastic: +语法检查 +,,, 开关 +使用 ALT-n ALT-p 遍历出问题的行(MAC 下暂时不会映射按键) -> 使用 :SyntasticInfo 查看所用检查器 (checker) -> python 需要先安装 pylint flake8 之类的检查器 -> To tell syntastic to use pylint, you would use this setting: -> let g:syntastic_python_checkers = ['pylint'] # 我已在 my_configs.vim 里配置 -> e.g. Python has the following checkers, among others: flake8, pyflakes, pylint and a native python checker. -> 具体使用请看 sources_non_forked/syntastic/README.markdown +使用 :SyntasticInfo 查看所用检查器 (checker) +python 需要先安装 pylint flake8 之类的检查器 +To tell syntastic to use pylint, you would use this setting: +let g:syntastic_python_checkers = ['pylint'] # 我已在 my_configs.vim 里配置 +e.g. Python has the following checkers, among others: flake8, pyflakes, pylint and a native python checker. +具体使用请看 sources_non_forked/syntastic/README.markdown -> 1. ss to set/unset syntax checking. -> 2. sn sp to move between wrong words. -> 3. sa to add word to dictionary. -> 4. s? to select a right word. +1. ss to set/unset syntax checking. +2. sn sp to move between wrong words. +3. sa to add word to dictionary. +4. s? to select a right word. -> surround.vim config -> 在 选中的区域 加前后缀 -> " Annotate strings with gettext "http://amix.dk/blog/post/19678" -> 例: -> :v # 先选中一段 -> S" # 此时即可前后加上 " -> test ==> "test" -> 其实和 v 选中后再 $1 ($2 $3...)效果相同 +surround.vim config +在 选中的区域 加前后缀 +" Annotate strings with gettext "http://amix.dk/blog/post/19678" +例: +:v # 先选中一段 +S" # 此时即可前后加上 " +test ==> "test" +其实和 v 选中后再 $1 ($2 $3...)效果相同 -> tab 命令 -> ,tn # 新 tab -> ,to # 只保留当前 tab -> ,tc # 关闭当前 tab (等同于 ZQ 或 ZZ 命令) -> ,tm # 移动标签到指定位置 (输入一个下标) -> ,t, # 补全一个 tab id 然后切过去 +tab 命令 +,tn # 新 tab +,to # 只保留当前 tab +,tc # 关闭当前 tab (等同于 ZQ 或 ZZ 命令) +,tm # 移动标签到指定位置 (输入一个下标) +,t, # 补全一个 tab id 然后切过去 -> " Let ',tl' toggle between this and the last accessed tab -> ,tl 可在最近两个 tab 间切换! +" Let ',tl' toggle between this and the last accessed tab +,tl 可在最近两个 tab 间切换! -> 将 ALT-u ,ALT-i 映射为 左右切换 tab (在 ./my_configs.vim) -> vim 默认使用 gt gT 左右切换 tab +将 ALT-u ,ALT-i 映射为 左右切换 tab (在 ./my_configs.vim) +vim 默认使用 gt gT 左右切换 tab -> " Opens a new tab with the current buffer's path -> " Super useful when editing files in the same directory -> ,te 底部命令栏会出现当前文件目录,需要补全,然后在新 tab 打开文件 -> ,nn 感觉更好用啊 +" Opens a new tab with the current buffer's path +" Super useful when editing files in the same directory +,te 底部命令栏会出现当前文件目录,需要补全,然后在新 tab 打开文件 +,nn 感觉更好用啊 -> 保存命令 -> ,w +保存命令 +,w -> " :W sudo saves the file -> 使用 :W 命令,用 sudo 权限保存文件 +" :W sudo saves the file +使用 :W 命令,用 sudo 权限保存文件 -> " Visual mode pressing * or # searches for the current selection -> " Super useful! From an idea by Michael Naumann -> visual 模式选中字段后,使用 * OR # 可直接指定该区域为搜索条件 -> 应当只按一次 * # ,然后用 n N 搜索 -> 因为 * # 默认为搜索当前光标下的词(不是句子)! +" Visual mode pressing * or # searches for the current selection +" Super useful! From an idea by Michael Naumann +visual 模式选中字段后,使用 * OR # 可直接指定该区域为搜索条件 +应当只按一次 * # ,然后用 n N 搜索 +因为 * # 默认为搜索当前光标下的词(不是句子)! -> " Parenthesis/bracket -> visual 模式下! 各种快捷 在选中的区域前后 插入标点符号 -> $1 ==> () -> $2 ==> [] -> $3 ==> {} -> $$ ==> "" -> $q ==> '' -> $e ==> "" +" Parenthesis/bracket +visual 模式下! 各种快捷 在选中的区域前后 插入标点符号 +$1 ==> () +$2 ==> [] +$3 ==> {} +$$ ==> "" +$q ==> '' +$e ==> "" -> 和 S" 模式很像,可以自己再配置(,e),格式是: -> vnoremap $1 `>a)` -> " Map auto complete of (, ", ', [ -> 插入模式下的补全 -> $1 ==> () -> $2 ==> [] -> $3 ==> {} -> $4 ==> { +和 S" 模式很像,可以自己再配置(,e),格式是: +vnoremap $1 `>a)` +" Map auto complete of (, ", ', [ +插入模式下的补全 +$1 ==> () +$2 ==> [] +$3 ==> {} +$4 ==> { -> } -> $q ==> '' -> $e ==> "" -> $t ==> <> +} +$q ==> '' +$e ==> "" +$t ==> <> -> python 下折叠函数 -> F +python 下折叠函数 +F -> 操作:za,打开或关闭当前折叠;zM,关闭所有折叠;zR,打开所有折叠。 -> 关于折叠的详细用法,可以在这里找到: -> http://tiandechi.com/2015/07/08/vim%E6%8A%98%E5%8F%A0/ +操作:za,打开或关闭当前折叠;zM,关闭所有折叠;zR,打开所有折叠。 +关于折叠的详细用法,可以在这里找到: +http://tiandechi.com/2015/07/08/vim%E6%8A%98%E5%8F%A0/ -> python 下的 快捷 -> 插入 -> $r return -> $i import -> $p print -> $f #--- PH ----------------------------------------------FP2xi -> 搜索 -> ,1 /class -> ,2 /def -> ,C ?class -> ,D ?def +python 下的 快捷 +插入 +$r return +$i import +$p print +$f #--- PH ----------------------------------------------FP2xi +搜索 +,1 /class +,2 /def +,C ?class +,D ?def -> javascript 下的 快捷 -> $log() -> alert() -> $r return -> $f //--- PH ----------------------------------------------FP2xi +javascript 下的 快捷 + $log() + alert() +$r return +$f //--- PH ----------------------------------------------FP2xi -> ACK -> 并不会用... -> 需要机器上有 ACK(>=2.0) http://beyondgrep.com/install/ -> " When you press gv you Ack after the selected text -> vnoremap gv :call VisualSelection('gv', '') +ACK +并不会用... +需要机器上有 ACK(>=2.0) http://beyondgrep.com/install/ +" When you press gv you Ack after the selected text +vnoremap gv :call VisualSelection('gv', '') -> " Open Ack and put the cursor in the right position -> map g :Ack +" Open Ack and put the cursor in the right position +map g :Ack -> " When you press r you can search and replace the selected text -> vnoremap r :call VisualSelection('replace', '') +" When you press r you can search and replace the selected text +vnoremap r :call VisualSelection('replace', '') -> " 完全不知道这些是什么鬼 -> " Do :help cope if you are unsure what cope is. It's super useful! -> " -> " When you search with Ack, display your results in cope by doing: -> " cc -> " -> " To go to the next search result do: -> " n -> " -> " To go to the previous search results do: -> " p -> " -> map cc :botright cope -> map co ggVGy:tabnew:set syntax=qfpgg -> map n :cn -> map p :cp +" 完全不知道这些是什么鬼 +" Do :help cope if you are unsure what cope is. It's super useful! +" +" When you search with Ack, display your results in cope by doing: +" cc +" +" To go to the next search result do: +" n +" +" To go to the previous search results do: +" p +" +map cc :botright cope +map co ggVGy:tabnew:set syntax=qfpgg +map n :cn +map p :cp -> 可以跳过 -> 因为我已经把 submodule 移除了... -> use submodule plugin -> 直接引用了其他的 repository (submodule 是一个很好的功能,大概算是 库中库) -> submodule 的信息储存在 ./.gitmodules +可以跳过 +因为我已经把 submodule 移除了... +use submodule plugin +直接引用了其他的 repository (submodule 是一个很好的功能,大概算是 库中库) +submodule 的信息储存在 ./.gitmodules -> 要把项目里 子仓库 部署进自家目录,还要再执行一串代码: -> deploy -> git submodule init -> git submodule update --recursive -> or use (合并成一句): -> git submodule update --init --recursive -> add -> git submodule add git@github.com:yashiro1899/wheat.git node_modules/wheat -> update -> git submodule foreach --recursive git pull origin master -> delete -> git rm --cached node_modules/wheat && rm -rf node_modules/wheat/ +要把项目里 子仓库 部署进自家目录,还要再执行一串代码: +deploy +git submodule init +git submodule update --recursive +or use (合并成一句): +git submodule update --init --recursive +add +git submodule add git@github.com:yashiro1899/wheat.git node_modules/wheat +update +git submodule foreach --recursive git pull origin master +delete +git rm --cached node_modules/wheat && rm -rf node_modules/wheat/