在JS文件中,我有一个类似的表达式:
if (someVar === 'someValue') {
statements;
}
,出于调试目的,有时我希望在上面的行中添加一个
console.log
: console.log('someVar:', someVar);
if (someVar === 'someValue') {
statements;
}
(正在工作)尝试:
我想要一些按键绑定来实现此目的,所以我尝试了:
nnoremap <Leader>L "ayiwOconsole.log(':', );<Esc>2F'"apf "ap
,基本上是将光标下方的单词移到寄存器
a
上,然后在上面的行中写一个空的console.log(':', );
模板,移动到所需位置并将寄存器a
粘贴两次。很脏。您能想到更优雅的方法吗?#1 楼
您可以在插入模式下使用<C-R>
插入寄存器的内容。这样,您可以一次插入整行,包括重复的变量名。例如:
nnoremap <Leader>L "ayiwOconsole.log('<C-R>a:', <C-R>a);<Esc>
您可能想要考虑同时考虑添加可视模式映射,在这种情况下,您还可以使用它来记录表达式的值,而不仅仅是记录一个与单词匹配的变量:
xnoremap <Leader>L "ayOconsole.log('<C-R>a:', <C-R>a);<Esc>
有关
:help i_CTRL-R
在插入模式下如何工作的更多详细信息,请参见<C-R>
。#2 楼
你们能想到一种更优雅的方法吗?
好吧,至少我们可以尽力而为:-)
nnoremap <silent><Leader>L :put! =printf('console.log(''%s:'', %s);', expand('<cword>'), expand('<cword>'))<CR>
评论
谢谢你,马特!我试试看:)
–Jordi Nebot
19年11月13日在19:45
评论
谢谢,filbranden!看起来绝对比我的好!
–Jordi Nebot
19年11月13日在19:46