PEP8_
用作单词分隔符,例如,名为get_context_data
.
caw当你想改变的时候真是太酷get_context_data
了set_context_data
。
我用谷歌搜索并添加set iskeyword-=_
到我的 vimrc。
但是这个更改带来了另一个问题,我可以在键入时自动完成方法名称get_
,菜单显示我context
不是context_data
我想要的,有没有办法解决这个问题?
通过更改'iskeyword'
设置,您会影响(并可能破坏)很多事情;其中包括词动(w
、e
等)、补全(你的问题在这里)和语法高亮。
我建议保留原始设置(毕竟,get_context_data
单个变量可能也应该由单个单词表示)。你可以使用我的camelcasemotion 插件来处理下划线分隔的片段。使用该插件,您可以覆盖原始动作和文本对象,或ca,w
使用caw
.
最好不要更改 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)
因为映射不能按字操作。但是,您可以使其适合您的需要。