为什么他们使用双星号?
我读过Vim的帮助上vimgrep,我看了看周围的堆栈溢出和vimcasts并同时我发现很多人说这是怎么你在当前目录中递归搜索,我还没有找到一个解释,为什么。
让我们用一个例子来更容易解释。如果我想在当前目录下查找所有出现的 foo,我可以使用
:vim[grep][!] /{pattern}/[g][j] {file}
Run Code Online (Sandbox Code Playgroud)
这样就变成
:vimgrep /foo/ **/*
Run Code Online (Sandbox Code Playgroud)
所以看看{file}这个grep的部分:
*) 是通配符。我的具体问题是为什么它以
**/*
并不是
*/*
我已经尝试在几种不同的情况下使用/进行搜索,这似乎是在距我当前目录正好 1 深的任何目录中搜索任何文件,我认为这就是使用双星号的原因。
即为什么它是一个双星号?这是否通过一些我不完全理解的巧妙机制表示“我希望您递归搜索”,或者这只是一个用于表示“递归搜索”的关键字?我是否完全关闭,这不是 vim 的内置部分,而是外壳的一部分?(这些部分不是我的实际问题,而是有助于理解我的困惑,我的实际问题在上面)。
如果有什么方法可以改进我的问题,请告诉我,这是我第一次提问。
我正在将一些单词改为大写,我点击viw~将单词的大小写从小写改为大写.我向前移动了一个单词并点击.以重复对下一个单词的操作,我注意到它影响了前面单词的一些字母的情况,而在其他时候它不会改变整个单词的大小写.
这是一个vim -u NONE带有单个句子的文件的例子
这是一个测试句
用我的光标在句子的开头,我viw~ 现在点击 我的句子:
这是一个示例测试句子
我向前移动1个单词w并点击.重复动作.我的句子现在是:
这是一个示例测试句子
w.
这是一个例子测试句子
w.
这是一个eXAMple测试句
w.
这是一个eXAMple TEST句子
当我将操作捕获为宏而不是使用时,会发生相同的行为 .
我怀疑vim只是改变了与第一个单词相同数量的字母的情况,但为什么呢?为什么viw不在宏中工作?
我的vim安装似乎发生了某些事情,但我不确定是什么。我是vim的长期用户(尽管我不将其用作主编辑器)。
当我搜索时:
/foo
Run Code Online (Sandbox Code Playgroud)
我想编辑找到的位置,所以按ESC(准备进入插入模式)。vim现在跳回到我从文件开始的位置。例如,如果我在3000行文件的第0行中,我搜索一个特定的字符串,在第1700行中找到它,然后想要对其进行编辑-ESC将我带回到第0行。
这是怎么回事?我是否意外设置了一些奇怪的模式?还是忘记了我应该知道的热键组合?
我正在使用Vim在服务器中编辑代码.我按J了j很多次,因为CapsLock已启用.如何恢复Js 所做的更改?按下u说它是最古老的变化.