1

PEP8_用作单词分隔符,例如,名为get_context_data.

caw当你想改变的时候真是太酷get_context_dataset_context_data

我用谷歌搜索并添加set iskeyword-=_到我的 vimrc。

但是这个更改带来了另一个问题,我可以在键入时自动完成方法名称get_,菜单显示我context不是context_data我想要的,有没有办法解决这个问题?

4

2 回答 2

3

通过更改'iskeyword'设置,您会影响(并可能破坏)很多事情;其中包括动(we等)、补全(你的问题在这里)和语法高亮。

我建议保留原始设置(毕竟,get_context_data单个变量可能也应该由单个单词表示)。你可以使用我的camelcasemotion 插件来处理下划线分隔的片段。使用该插件,您可以覆盖原始动作和文本对象,或ca,w使用caw.

于 2013-03-19T09:53:05.533 回答
1

最好不要更改 iskeyword 选项。有很多命令需要它。如果您只是想让编辑下划线连接字符串 ( a_b_c_d) 更容易,您可以尝试以下映射:

onoremap iu :<c-u>normal! T_vt_<cr>
onoremap au :<c-u>normal! F_vf_<cr>

使用此映射,(iu 表示在下划线中,您可以更改它)。你可以例如

get_cont[I]ext_data ( [I]:cursor) 

你输入ciu你得到get_[I]_data的, diu会做删除,au也会对包裹的下划线做操作。

但是,对于这些情况,上述映射不起作用意外工作 ^_*

g[I]et_context_data -> [I]_context_data  (you could do bct_ instead)
get_context_dat[I]a -> get_context_[I]   (you could do ecT_ or T_cw instead)

因为映射不能按字操作。但是,您可以使其适合您的需要。

于 2013-03-19T14:03:15.210 回答