当我在 vim 中打开新文件时,缓冲区索引似乎跳过了任意索引。我使用b<buffer-index>,在缓冲区之间切换,因此为了理智/强迫症而拥有顺序索引是有帮助的。过了一会儿,我只是退出 vim 并通过 CL 加载我当前正在处理的文件,并按顺序对它们进行排序,但是当您有多个子目录路径时,这很痛苦。
我可以重置序列或其他什么吗?
我用来MacVim (snapshot 51)在中等大小的项目中编辑 Python/HTML/etc 文件。每隔几个月我的系统就会锁定或崩溃,并且 Vim 会留下大量 .*.swp 文件。当我在崩溃后重新打开 Vim 并编辑这些文件中的任何一个时,我被告知“交换文件 ''.xyz.swp'' 已经存在!” 与 [中止] [退出] [删除] [恢复] [仍然编辑] 和 [打开只读] 选项。
如果在崩溃时没有保存 Vim 缓冲区的更改,则此恢复选项将有意义。然而,在崩溃时,这些文件是在 Vim 的后台打开的,并且没有改变。
如果可能,我如何配置 Vim 在打开.swp文件和实际文件之间没有更改的文件时不问这个多余的问题,例如:
自动将 .swp 文件中的更改与文件进行比较,如果没有更改则直接打开文件而不提示;
不为没有更改的文件保留 .swp 文件。
任何其他系统地避免这种毫无意义的提示的方法(但我不希望在有未保存更改的情况下避免提示)。
目前我有超过 50 个.swp文件需要清理,毫无意义的提示是我很高兴避免的一种挫败感。
感谢您的阅读。
布赖恩
我写了一个小的 perl 脚本,我调用如下:
perl -pe'...' <a
Run Code Online (Sandbox Code Playgroud)
我想从网络浏览器(准确地说是整个 wordpress 博客条目)复制输入文件“a”的内容。复制部分工作正常,完整内容显示在 ClipMenu 中。但是当我尝试使用 cat 将其粘贴到文件中并重定向时:
cat >a
Run Code Online (Sandbox Code Playgroud)
它正好发出 1024 个字符,然后停止接受输入 - 只有 CTRL-C 可以提供帮助。我试过只粘贴 1023 个字节/字符,这很有效,按 Enter 后,我可以毫无问题地将它输入到文件中。但是如果我在一行中输入 1024 个字符,除了 CTRL-C 之外没有其他办法。
我试过 iTerm 和 Terminal.app,两者都显示出完全相同的行为。我已经尝试过 macports 和 /bin 中的 bash,结果完全相同。我什至试过 dd:
dd bs=1M of=a
Run Code Online (Sandbox Code Playgroud)
到完全相同的结果。似乎没有任何帮助。
我一无所知 - 为什么会发生这种情况?我怎样才能轻松地复制粘贴到 Mac OS X 上的文件中,并且可以确保内容不会以任何方式改变?
我已经在 CygWin 上测试过使用大目录执行“ls -R”并将输出Test.txt发送到文件,因此该过程大约需要 30 秒才能完成;文件已创建,但为空;它只会在“ls -R”命令完成时填充,我需要在输入新数据的同时查看文件内容。
问题应该来自操作系统在写入文件之前进行的缓冲。
这是我为了在没有缓冲的情况下写入文件而进行的测试:
expect:它在哪里?现代expect版本没有这样的unbuffer命令(见下文): ./unbuffer -pls /cygdrive/y/Repositorio/ -R > Test.txt
./unbuffer ls /cygdrive/y/Repositorio/ -R | 三通测试.txt
./unbuffer -pls /cygdrive/y/Repositorio/ -R | 三通测试.txt
./unbuffer ls /cygdrive/y/Repositorio/ -R | ./unbuffer -p egrep "" | 三通测试.txt
./unbuffer -pls /cygdrive/y/Repositorio/ -R | ./unbuffer -p egrep "" | 三通测试.txt
#!/usr/bin/expect --
# 描述: unbuffer … 是否可以info在 Emacs 中打开多个缓冲区?我曾经C-h i打开info并开始阅读我感兴趣的部分。在阅读时,我想参考另一个info部分——使用C-h i第二次不会打开第二个info缓冲区。如何才能做到这一点?
假设我有一个 C 字符数组char buf[15]。假设变量int set_me = 0将其数据直接存储在char buf[15]. 如果我溢出buf与串"aaabbbcccdddeee\xef\xbe\xad\xde",将set_me的数据类型的变化从一个整数的字符阵列?
我正在尝试将时间戳应用于进程的标准输出。为了应用正确的时间戳,我尝试对过程进行unbuffer 标准输出。这适用于unbuffer但不符合stdbuf我的预期。考虑以下慢速打印脚本“ slowprint ”:
#!/bin/bash
if [ $# -ne 2 ]; then
echo "usage: ${0%%/*} <file> <delay in microseconds>"
exit 1
fi
DELAY=$2 perl -pe 'BEGIN{use Time::HiRes qw(usleep)} { usleep($ENV{DELAY}) }' $
Run Code Online (Sandbox Code Playgroud)
现在比较以下应用时间戳的尝试:
stdbuf -oL ./slowprint <(ls) 100000 |
awk '{ print strftime("%H:%M:%S"), $0; fflush(); }'
Run Code Online (Sandbox Code Playgroud)
对比
unbuffer ./slowprint <(ls) 100000 |
awk '{ print strftime("%H:%M:%S"), $0; fflush(); }'
Run Code Online (Sandbox Code Playgroud)
第二个对我有用,而第一个没有,尽管我希望他们做同样的事情。目前unbuffer不合适,因为它在某些情况下会吞下错误代码(我发布了一个关于该行为的单独问题)。
MPC-HC 中的流视频缓冲区太小,无法在用户偏好中扩展。
从 :help 命令,在键映射部分:
如果这些命令之一的第一个参数是
<buffer>映射将仅在当前缓冲区中有效。
我不明白这个定义。不是所有命令都应用于您正在处理的缓冲区吗?它还提到您可以使用它<buffer>来将相同的组合键映射到不同缓冲区上的不同命令。仅从这一点来看,如果您想在处理文件时映射某些内容,我认为您会使用它,因此它不会影响其他缓冲区?我糊涂了。
为了提供我来自哪里的具体示例,以下是使用 F9 运行 python 脚本的映射,我在 Stack Overflow 上找到了它。我在质疑它的用途<buffer>是什么,因为没有它,映射似乎也能正常工作:
autocmd FileType python nnoremap <buffer> <F9> :!clear;python %<cr>
Run Code Online (Sandbox Code Playgroud) 在使用 macOS / Linux 十多年后,我\xe2\x80\x99m 在当前项目中使用 Windows 10。cmd似乎是从 Windows XP 时代开始出现的,但我\xe2\x80\x99m 有一个特殊的问题。
在 macOS\xe2\x80\x99s 终端上,如果我向上滚动以检查某些内容,当我想返回时,我可以向另一个方向滚动滚动,它将停止在光标所在的当前文本的末尾。如果我在命令提示符中执行相同的操作,则会发现在光标之外的底部有 \xe2\x80\x99s 数千行空白文本,我需要小心地向后滚动它才能返回到光标。键入某些内容将重新聚焦到正确的行,但前提是有\xe2\x80\x99s 光标;如果我\xe2\x80\x99m运行我的测试套件,它会等待命令而不返回到shell,并且不会\xe2\x80\x99m在键入时滚动到正确的点。
\n\n我\xe2\x80\x99已经完成了设置,并且\xe2\x80\x99看不到任何明显需要更改的内容。有什么方法可以改变行为以匹配 macOS\xe2\x80\x99s 终端,还是我必须重新学习我的肌肉记忆?
\n