nnoremap
2018-03-20 本文已影响58人
shuff1e
- 这是在收智商税吗?明明一行vimscript就可以搞定的事。
nnoremap <S-h> :exec "!python -c "help('".expand("<cword>")."')"" <CR> - 扩展光标所在单词,然后两边的.是什么意思啊
- 字符串拼接,和php一样,用.来拼接字符串
- 拼接哪个单词啊,还有这个单引号里面是双引号是起什么作用额,谢谢
- 手动展开就是: !python -c "help('<cword>')"
- ex命令,例如:!python -c "help('print')"是没有问题的,help('".expand("<cword>")."')这部分不太明白什么意思,请不吝赐教
- 加入当前光标对应的单词为numpy,那么expand("<cword>") 会被替换为 numpy,
然后整体语句变成: "!python -c "help('" . "numpy" . "')""
由于.事字符串拼接符,所以实际变成:"!python -c "help('numpy')""
你在vim里面echo一下就会变成:!python -c "help('numpy')"
其实就是个转义了一下 - 嗯嗯,那就是 " . "numpy" . " 这个是什么意思啊,或者说" . "是起了什么作用
- 你是不是断错token了,上面是三个string literal,
"!python -c "help('"
"numpy"
"')""
然后.号就是把这几个字符串拼接一下 - 明白了,我是断错了,因为awk模式的正则pattern里面引用变量是例如'"$host"'这样的,所以我弄错了,谢谢。你有博客吗?能否让我粉一下
- 科研民工,一般不写博客。
- 好吧,还是谢谢了
注意
nnoremap <S-h> :exec "!python -c "help('".expand("<cword>")."')""后面有个空格,然后才是<CR>,没有空格的话映射失败