首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Vim可视化选择变量

Vim可视化选择变量
EN

Stack Overflow用户
提问于 2012-12-02 14:18:09
回答 2查看 565关注 0票数 4

我想知道是否有一种方法可以明智地选择变量,就像使用va}这样的命令来选择块一样。例如,有一些特定于语言的解析来区分php和ruby。为了将来的参考,最好能利用这一点--理想的选择是围绕各种语法元素。

例如。我想在下面的php行中围绕$array['testing']进行选择:

代码语言:javascript
运行
AI代码解释
复制
$array['testing'] = 'whatever'

或者,假设我想在这里选择块参数列表|item, index|

代码语言:javascript
运行
AI代码解释
复制
hash.each_with_index { |item, index| print item }

编辑:

特定的regexp可能单独处理各种问题,但我觉得应该有一种方法来利用语法分析来获得更健壮的东西。

EN

回答 2

Stack Overflow用户

发布于 2012-12-03 01:45:44

虽然给出的示例可以快速选择内置的Vim文本对象(第一个是viW,第二个是F|v,),但我承认Vim的语法突出显示可能是运动和文本对象的一个很好的来源。

我在SyntaxMotion插件中看到了这个想法的第一个实现,最近我实现了一个类似的插件:SameSyntaxMotion。第一个定义了正常和可视模式的运动,但没有操作符挂起和文本对象.它不跳过包含的子语法项,使用与区别属性相同的颜色,而我的使用语法(可以更精确,但也更难理解),也有文本对象(ayiy)。

票数 3
EN

Stack Overflow用户

发布于 2012-12-03 02:53:38

您可以在中定义自己的任意文本对象

实现自定义文本对象的最简单方法是为视觉模式部分定义一个:vmap (或:xmap),为操作符挂起模式部分定义一个:omap。例如,以下映射

代码语言:javascript
运行
AI代码解释
复制
xnoremap aC F:o,
onoremap aC :normal! F:v,<CR>

让您选择一个以冒号括起来的文本.尝试在下面的单词“冒号”上执行vaPdaP操作:

代码语言:javascript
运行
AI代码解释
复制
Some text :in-colon-text: more of the same.

有关另一个简短的:omap示例,请参见:omap

但是,如果您不介意依赖于插件,那么就会有http://www.vim.org/scripts/script.php?script_id=2100。这是Kana Natsuno编写的定制文本对象的通用框架。已经有一些优秀的文本对象为http://www.vim.org/scripts/script.php?script_id=2484这样的框架编写,我认为这是必不可少的。

使用它,您可以轻松地为变量实现与文件类型相关的文本对象。把它提供给每个人!

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13674534

复制
相关文章

相似问题

领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文