对VIM来说相对较新,并且很有时间使用它。
当我想修改命令时,我遇到的一个非常小的烦恼是命令模式字符导航。我习惯在常规(非vim)命令行上使用readline快捷方式,但这些快捷方式在:
命令模式下似乎不起作用。
例如,使用ctrl + b
返回一个字符最终会将我发送到该行的开头,或者使用alt + f
前进一个字,最后清除该行并退出命令模式。
我发现在命令模式下导航的唯一方法是使用箭头键,但我认为你应该避免vim中的箭头键以获得最大效率。
在:
命令模式下导航的标准方法是什么? vim用户通常在这里使用箭头键吗?是否有不同的修改命令的方法?
作为一个更具体的例子,我一直在使用vimgrep
来搜索文件。我会做一个像:
:vimgrep /font-family/j my-project/**/*.less | cope
稍后,我会想要使用相同的搜索但查找不同的属性,因此我点击:
然后ctrl + p
来访问我之前的vimgrep
。现在,我必须使用箭头键向后导航到搜索字符串并进行修改。如果我可以使用readline按字向后导航然后按字删除,那会快得多。
答案 0 :(得分:3)
对于小编辑, Backspace 和光标键的使用应该没问题。对于任何更大的内容,我建议使用命令行窗口:
在命令行窗口中,可以像编辑一样编辑命令行 任何窗口中的文字。
因此,没有必要在心理上切换到 readline 键映射;只需使用Vim的全部编辑功能(包括任何自定义映射)。
您可以通过data = new Vector<String>() {
@Override
public synchronized boolean addAll(Collection<? extends String> arg0) {
// TODO Auto-generated method stub
Vector<String> v = (Vector<String>) arg0;
for (String string : v) {
if (contains(string)) {
return false;
}
}
return super.addAll(v);
}
};
从命令行切换,或直接输入(从正常模式),而不是<C-F>
而不是q:
。所有细节都可以在:
找到。
答案 1 :(得分:1)
我喜欢这个问题。很长一段时间vim用户,但是这里是新的,所以我不能投票。但事实上,也许是非正式的,很多vim粉丝都觉得大部分时间的目标是不让你的手离开主排位置(手指移动,手相对静止)。
我承认,在命令模式方面,我使用箭头。当P在我的小指上时,我会很多地击中ctrl-P,并且右手向下滑动(在我的自然键盘上)并且通过快速感觉立即找到向上箭头来做同样的事情事情。一旦我在那里,左右箭头也很容易找到,没有看或延迟。同样,Ctrl-arrows可让您逐字逐句。
关于vim的一个好处是:帮助。多年来我一直很容易花费数十个小时阅读它,如果我有足够的时间和工作记忆来深入了解它,它可以解决我95%的问题。
以下是我找到的内容:help readline:
READLINE readline.vim ft-readline-syntax
readline库主要由BASH shell使用,它添加了 相当多的命令和选项已经可用。至 突出显示这些项目,您可以将以下内容添加到您的 | vimrc |里或者在加载文件之前在命令行中输入 readline语法:
let readline_has_bash = 1
这将为BASH(版本2.05a)的命令添加突出显示 后来,部分早些时候补充说。
试一试! (我正在使用vim 7.4)
答案 2 :(得分:1)
您可以看到与:help cmdline-history
(向下滚动一下)和:help ex-edit-index
的默认键绑定列表。
您可以使用cnoremap
cnoremap <C-b> <Left>
cnoremap <C-a> <C-b>
" .. Probably more
请注意,使用cmap
可能会让您遇到问题,因为右侧是当前映射的操作,而cnoremap
右侧则是def get_paths(data):
if 'path' in data:
yield data['path']
for k in data.keys():
if isinstance(data[k], dict):
for i in get_paths(data[k]):
yield i
for path in get_paths(json_data): # loaded json data
print(path)
将始终使用本机Vim操作。