learn vim script the hard way 笔记(下)
CH31 Basic Regular Expressions
/和?,前者向后找,后者向前找
CH32 Case Study: Grep Operator, Part One
:nnoremap <leader>g :grep -R <cWORD> .<cr>可以搜索<cWORD>,表示光标下的单词(包括连字符,比<cword>更大),之后可以用:cwindow查看quickfix窗口- 以上还有一点要修改,如果光标在一个
foo;ls下,使用后实际会执行ls命令,原理和SQL注入类似,所以需要用单引号保证字面值,:nnoremap <leader>g :grep -R '<cWORD>' .<cr> - 但上面对于光标有单引号的不启作用,用
:echom shellescape(expand("<cWORD>"))可以显示shellescape后的值 - 最终版本
:nnoremap <leader>g :silent execute "grep! -R " . shellescape(expand("<cWORD>")) . " ."<cr>:copen<cr>,前面加个:silent可以防止搜索时的输出,最后再:copen打开结果页
CH33 Case Study: Grep Operator, Part Two
进入.vim/plugin/下,新建一个文件”grep-operator.vim”,写上nnoremap <leader>g :set operatorfunc=GrepOperator<cr>g@和function! GrepOperator(type) | echom "Test" | endfunction,这时用<leader>giw会发现打出了Test
learn vim script the hard way 笔记(中)
CH13 Buffer-Local Abbreviations
- 这章就是说
iabbrev也能用<buffer>来修饰 - 你想记住某个新的snippet最好办法就是disable掉原来的命令,比如
iabbrev <buffer> return NOPENOPENOPE
CH14 Autocommand Groups
autocmd是不会替换原先的命令的,假如使用两次同样的命令,那触发autocmd时会进行两次命令- 特别要注意在你
source $MYVIMRC时,autocmd会再载入一次! - 可以用
augroup testgroup autocmd xxx augroup END,这时如果你运行下augroup testgroup autocmd yyy augroup END,你猜xxx还会执行吗?耶,答案是会! - 你可以在augroup里用
autocmd!来清空augroup
learn vim script the hard way 笔记(上)
CH02
- 布尔型变量可以用
:set [no]number这样来设置,:set number!表示取反,:set number?获取当前状态(实际:set nonumber?也可以哟) - 数值型用
:set numberwidth=10来设置,同理:set numberwidth?获取当前值 relativenumber或者rnu用来显示相对行号,当前所在行显示绝对行号,两边分别从1,2,3开始显示
CH03
- 注释用
"来标记 - 注意注释不要写在
map后面,这样会当成命令去执行map a dd "comment
CH04
map,nmap,vmap,imap都知道什么意思吧
《汐》游玩体验
趁着假期把《汐》通关了,先声明我是通过奶牛关的野蔷薇 获取的 key,所以我会把写一篇靠谱的评测作为自己的一个责任。
自己是一个 ACT 游戏玩家,会特别痴迷平台跳跃类游戏,玩过的 Super Meat Boy (后面简称 SMB) 可以说是这类游戏的神作以及标杆,所以后面会把《汐》和 SMB 作个比较。我玩的时候游戏版本是 1.0.5。
airflow 踩坑集锦
距离上一篇airflow 进阶居然过了两个月了, 不得不说从上线 airflow 以来问题出了一些,这篇我就来分享下使用过程中踩过的坑, 也欢迎有兴趣的同学发信分享你遇到的问题或者解决办法。