所以这是我的映射:
nnoremap <cr> :nnoremap <lt>cr> :w!<lt>cr>:!tmux send-keys -t :1.1 "py.test --cov=." C-m <lt>cr><lt>cr><left><left><left><left><left><left><left><left><left><left><left><left><left><left><left><left><left><left><left><left><left><left><left><left><left><left><left><left><left><left><left><left><left><left><left>
太棒了 它的作用是当我第一次启动vim会话(或重新加载vimrc之后)并按Enter键时,我可以立即输入我所在的tmux会话的名称,然后再次按Enter键。假设我正在窗口1的第零个窗格中编辑文件,并且进行了tmux拆分(在我的典型情况下为水平)。随后在正常模式下按Enter键将保存我的活动文件并在另一个窗口中启动py.test测试。这意味着我可以在测试通过之前从技术上继续编码。我忘记了我最初是从谁那里得到这个主意的,可是那个家伙。
总之,你毫无疑问注意到,有一个很大的<left>
的在测绘,因为我想启动命令出能够设置会话名称。但是在某些情况下,我可能会在其他窗口或其他内容中编辑代码,或者需要更改pytest命令或其他内容,因此我仍然希望能够进行这些修改。
有什么方法可以改善此映射?也许以完全不同的方式来对待它?
您的初始映射将构建另一个映射命令,并用于<Left>
将光标插入正确的位置以完成并执行它。
替代方法是定义一个自定义命令(例如:TestInSession
),该命令以可变部分作为参数。然后,您的初始映射可以仅构建其他映射,将光标保留在的末尾:TestInSession
,并且命令行中的混乱程度将减少,并且末尾的编辑更容易。
如果需要重新配置其他映射的功能,则可以定义一个不会被覆盖的替代初始映射,例如:
:nnoremap <Leader><cr> :nnoremap <lt>cr> ...
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句