标签: buffer

是否可以重置 vim 用于文件缓冲区的索引序列?

当我在 vim 中打开新文件时,缓冲区索引似乎跳过了任意索引。我使用b<buffer-index>,在缓冲区之间切换,因此为了理智/强迫症而拥有顺序索引是有帮助的。过了一会儿,我只是退出 vim 并通过 CL 加载我当前正在处理的文件,并按顺序对它们进行排序,但是当您有多个子目录路径时,这很痛苦。

我可以重置序列或其他什么吗?

vim buffer

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

VIM - 崩溃后留下 .swp 文件

我用来MacVim (snapshot 51)在中等大小的项目中编辑 Python/HTML/etc 文件。每隔几个月我的系统就会锁定或崩溃,并且 Vim 会留下大量 .*.swp 文件。当我在崩溃后重新打开 Vim 并编辑这些文件中的任何一个时,我被告知“交换文件 ''.xyz.swp'' 已经存在!” 与 [中止] [退出] [删除] [恢复] [仍然编辑] 和 [打开只读] 选项。

如果在崩溃时没有保存 Vim 缓冲区的更改,则此恢复选项将有意义。然而,在崩溃时,这些文件是在 Vim 的后台打开的,并且没有改变。

如果可能,我如何配置 Vim 在打开.swp文件和实际文件之间没有更改的文件时不问这个多余的问题,例如:

  1. 自动将 .swp 文件中的更改与文件进行比较,如果没有更改则直接打开文件而不提示;

  2. 不为没有更改的文件保留 .swp 文件。

  3. 任何其他系统地避免这种毫无意义的提示的方法(但我不希望在有未保存更改的情况下避免提示)。

目前我有超过 50 个.swp文件需要清理,毫无意义的提示是我很高兴避免的一种挫败感。

感谢您的阅读。

布赖恩

vim macvim buffer

9
推荐指数
1
解决办法
3360
查看次数

MacOSX 10.6.7 在 1024 个字符处切断标准输入

我写了一个小的 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 上的文件中,并且可以确保内容不会以任何方式改变?

terminal cat buffer macos

9
推荐指数
1
解决办法
2635
查看次数

CygWin 的 Shell 无缓冲:有可能吗?

我已经在 CygWin 上测试过使用大目录执行“ls -R”并将输出Test.txt发送文件,因此该过程大约需要 30 秒才能完成;文件已创建,但为;它只会在“ls -R”命令完成时填充,我需要在输入新数据的同时查看文件内容。

问题应该来自操作系统在写入文件之前进行的缓冲

这是我为了在没有缓冲的情况下写入文件而进行的测试:

  • 包中的unbuffer命令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
  • 安装Expect包并命名“unbuffer”这个脚本:
    #!/usr/bin/expect --
    # 描述: unbuffer …

cygwin shell buffer

9
推荐指数
1
解决办法
1248
查看次数

在 Emacs 中打开多个信息缓冲区

是否可以info在 Emacs 中打开多个缓冲区?我曾经C-h i打开info并开始阅读我感兴趣的部分。在阅读时,我想参考另一个info部分——使用C-h i第二次不会打开第二个info缓冲区。如何才能做到这一点?

emacs buffer

8
推荐指数
1
解决办法
949
查看次数

缓冲区溢出是否会改变它正在覆盖的变量的数据类型?

假设我有一个 C 字符数组char buf[15]。假设变量int set_me = 0将其数据直接存储在char buf[15]. 如果我溢出buf与串"aaabbbcccdddeee\xef\xbe\xad\xde",将set_me的数据类型的变化从一个整数的字符阵列?

memory buffer

8
推荐指数
1
解决办法
2036
查看次数

stdbuf 不起作用,而 unbuffer 起作用

我正在尝试将时间戳应用于进程的标准输出。为了应用正确的时间戳,我尝试对过程进行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不合适,因为它在某些情况下会吞下错误代码(我发布了一个关于该行为的单独问题)。

linux bash awk buffer

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

如何让 MPC-HC 更积极地缓存

MPC-HC 中的流视频缓冲区太小,无法在用户偏好中扩展。

video media-player-classic buffer video-streaming

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

&lt;buffer&gt; 用于 vim 映射的什么?

从 :help 命令,在键映射部分:

如果这些命令之一的第一个参数是<buffer>映射将仅在当前缓冲区中有效。

我不明白这个定义。不是所有命令都应用于​​您正在处理的缓冲区吗?它还提到您可以使用它<buffer>来将相同的组合键映射到不同缓冲区上的不同命令。仅从这一点来看,如果您想在处理文件时映射某些内容,我认为您会使用它,因此它不会影响其他缓冲区?我糊涂了。

为了提供我来自哪里的具体示例,以下是使用 F9 运行 python 脚本的映射,我在 Stack Overflow 上找到了它。我在质疑它的用途<buffer>是什么,因为没有它,映射似乎也能正常工作:

autocmd FileType python nnoremap <buffer> <F9> :!clear;python %<cr>
Run Code Online (Sandbox Code Playgroud)

remapping vim buffer

6
推荐指数
1
解决办法
2839
查看次数

阻止 Windows 命令提示符滚动过去的光标

在使用 macOS / Linux 十多年后,我\xe2\x80\x99m 在当前项目中使用 Windows 10。cmd似乎是从 Windows XP 时代开始出现的,但我\xe2\x80\x99m 有一个特殊的问题。

\n\n

在 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

console window buffer scrolling cmd.exe

6
推荐指数
1
解决办法
9621
查看次数