2

在这段代码中:

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

我的光标pmy_text_style_plain.

我想直观地选择这个:

${my_text_style_plain}

序列va}va{选择这个:

{my_text_style_plain}

如果无法方便地准确选择我想要的内容,我可能会很高兴快速移动到$or {

我知道我可以F{但实际上我需要经常“向后查找”封闭括号,当我处于多行函数的中间并且我想重命名它时,例如,这可能也很有用。

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

4

4 回答 4

5

正如您所说,va}选择{my_text_style_plain}(甚至跨多行)。

要快速选择前导$,您可以o跳到视觉选择的开头,然后h将其向左扩展一个字符。

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

于 2013-04-01T11:54:11.987 回答
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}
于 2013-04-01T14:07:46.360 回答
1

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

nnoremap <F6> F$vf}
于 2013-04-01T12:31:00.137 回答
0

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

autocmd FileType sh setlocal iskeyword+=$

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

于 2020-12-08T09:33:55.047 回答