Vim直观地选择一个Bash变量

时间:2013-04-01 11:39:46

标签: vim

在此代码中:

printf "%-${field_length}s : %b%s${my_text_style_plain}\n" \
...

我的光标位于p的{​​{1}}字母上。

我想在视觉上选择这个:

my_text_style_plain

序列 v a } v a { 选择此项:

${my_text_style_plain}

如果没有方便地选择我想要的内容,我很乐意快速转到{my_text_style_plain} $

我知道我可以 F {但是当我处于多线功能的中间时,我经常需要“向后找到”封闭的支撑我想重命名它,所以这也许有用。

F {在这种情况下是有限的,因为它只会在同一行找到{

4 个答案:

答案 0 :(得分:5)

如你所说, v a } 选择{my_text_style_plain}(即使是多行)。

要快速选择前导$,您可以执行 o 跳转到视觉选择的开头,然后 h 将其扩展为左边的字符。

当然,如果您需要做很多事情,可以将其映射到其他键。

答案 1 :(得分:2)

您可以执行此操作或将其添加到您的vimrc :(围绕变量)

onoremap av :<c-u>normal! F$vf}<cr>

这样你就可以:( $}之间的光标)

cav   - remove the ${foo} and switch to insert mode
dav   - delete the ${foo}
yav   - yank the ${foo}

答案 2 :(得分:1)

您可以创建一个简单的映射:

nnoremap <F6> F$vf}

答案 3 :(得分:0)

您也可以使用iskeyword+=$来使Vim将美元符号识别为关键字。不过,这仅对$VAR有用,而对${VAR}没有帮助。

autocmd FileType sh setlocal iskeyword+=$

然后按viw也将选择$。与vim-surround结合使用时特别有用。