小编Kel*_*vin的帖子

如何使“bash -x”(调试模式)递归到源脚本中?

我正在尝试调试 bash 在 Linux 登录初始化时所做的事情。我读过“bash -x”将使 bash 打印出它在做什么,但它不会像“set -x”那样打印源文件中的命令。我不能使用“set -x”,因为初始化在我调用它之前运行。“bash -x”似乎在 OS X 上递归得很好,但这可能是因为 bash 版本。

Linux:3.2.25

OS X:3.2.48

以下是 Linux 上非递归行为的摘录:

bash -l -x -c 'echo 1'
# ... snip ...
+ for i in '/etc/profile.d/*.sh'
+ '[' -r /etc/profile.d/vim.sh ']'
+ '[' '' ']'
+ . /etc/profile.d/vim.sh
+ for i in '/etc/profile.d/*.sh'
+ '[' -r /etc/profile.d/which-2.sh ']'
+ '[' '' ']'
+ . /etc/profile.d/which-2.sh
# ... snip ...
Run Code Online (Sandbox Code Playgroud)

注意 /etc/profile.d/vim.sh 的来源,但它的命令没有打印出来。有没有不升级的解决方法?这是版本差异导致的吗?

linux bash macos

10
推荐指数
1
解决办法
4582
查看次数

在vim中,如何选择加载quickfix项的窗口?

我通常有 4 个窗口,分成 2x2 网格。当我运行一个填充 quickfix 的命令时,第一个匹配的位置会在当前窗口中打开。但是如果我选择一个尚未加载的 QF 位置,它似乎总是在右下角的窗口中打开。

有没有办法让它在不同的窗口加载?具体来说,有没有办法让它在我所在的最后一个窗口中加载 - 即“CTRL-w p”会带我去的窗口?

vim window

7
推荐指数
1
解决办法
2684
查看次数

如何防止某些 vim 格式选项被 ftplugins 启用?

当我在 vim 中加载某些文件类型时,相应的 ftplugin 会添加“co”(以及其他选项)。我不要这个。

一个例子是捆绑的 ruby​​.vim。我可以通过将文件复制到 ~/.vim/ftplugin/ 并set formatoptions手动更改行来一次完成一个 ftplugin ,但这真的很不方便。另外,如果我升级 vim,我将没有最新的 ftplugin 文件。

有没有办法只忽略所有 ftplugins 的“co”部分?或者也许有某种方法可以在每次 ftplugin 加载后自动运行“set formatoptions-=co”?

更新:

这是我对已接受答案的改进:

augroup myft
  au!
  au FileType * setlocal formatoptions-=c formatoptions-=o
augroup END
Run Code Online (Sandbox Code Playgroud)

这定义了一个组中的 autocmd,因此可以在 .vimrc 多次获得的情况下清除该组。否则,相同的 autocmd 将不断被附加。

vim vim-plugins

3
推荐指数
1
解决办法
1191
查看次数

标签 统计

vim ×2

bash ×1

linux ×1

macos ×1

vim-plugins ×1

window ×1