PEP8使用_
作为单词分隔符,例如,名为get_context_data
的方法。
get_context_data
更改为set_context_data
时,caw 非常酷。
我用Google搜索并将set iskeyword-=_
添加到我的vimrc。
但是这个更改会带来另一个问题,我可以在输入get_
时自动填写方法名称,菜单显示context
而不是context_data
我想要的,有没有办法解决问题
答案 0 :(得分:3)
通过更改'iskeyword'
设置,您可以影响(并可能打破)很多事情;其中 word 动作(w
,e
等),完成(此处为您的问题)和语法高亮。
我建议保留原始设置(毕竟,get_context_data
作为单个变量也应该由单个字表示。您可以使用我的camelcasemotion plugin处理下划线分隔的片段。使用该插件,您可以覆盖原始动作和文本对象,也可以使用ca,w
代替caw
。
答案 1 :(得分:1)
最好不要更改iskeyword选项。有很多命令需要它。如果您只想更轻松地编辑下划线连接字符串(a_b_c_d
),可以尝试以下映射:
onoremap iu :<c-u>normal! T_vt_<cr>
onoremap au :<c-u>normal! F_vf_<cr>
使用此映射,(iu表示在Underscore中,您可以更改它)。你可以举个例子
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)
因为映射不能按字面顺序工作。但是,您可以使其适合您的需要。