标签: diff

Vim:打开一个我不想写入的缓冲区

我刚刚在 .vimrc 中创建了一个新映射,以便在新窗口中快速打开我正在使用的存储库的差异。

""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""                                                
" Quickly see diff
" """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Open /tmp/tmp.diff in a new split
" delete the entire content
" read in the diff
nnoremap <leader>d :vsp /tmp/tmp.diff<CR>ggdG<bar>:r !hg diff<CR>
" Automatically write the diff when exiting the buffer so we're not asked to
" save it
autocmd! BufUnload /tmp/tmp.diff :w<CR>
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,我在退出缓冲区时使用 BufUnload autocmd 来保存文件,因为我不想每次查看差异时都手动写入文件。但我宁愿 Vim 不要警告我。

那么有没有一种方法可以在 Vim 中打开一个缓冲区,并且在有未保存的内容时不关心它是否关闭?如果我不必打开特定文件,而不是匿名缓冲区,我也希望它。

我宁愿不使用自动写入。

(我只是 Vim/Vimscript 的初学者,所以如果我应该为此编写一个函数,请告诉我)

vim diff

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

如何将命令的输出重定向到 diff

我正在尝试编写一个循环,但这不起作用:

for t in `ls $TESTS_PATH1/cmd*.in` ; do
  diff $t.out <($parser_test `cat $t`)
  # Print result
  if [[ $? -eq 0 ]] ; then
    printf "$t ** TEST PASSED **"
  else
    printf "$t ** TEST FAILED **"
  fi
done
Run Code Online (Sandbox Code Playgroud)

这也没有帮助:

$parser_test `cat $t` | $DIFF $t.out -
Run Code Online (Sandbox Code Playgroud)

Diff 显示输出不同(很奇怪,我看到所需错误行的输出,因为它被打印到 stdout,并且没有被 diff 捕获),但是当使用临时文件运行时,一切正常:

for t in `ls $TESTS_PATH1/cmd*.in` ; do
  # Compare output with template
  $parser_test `cat $t` 1> $TMP_FILE 2> $TMP_FILE
  diff $TMP_FILE $t.out
  # Print result
  if [[ $? …
Run Code Online (Sandbox Code Playgroud)

testing bash diff

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

通过 Vim 保存平面文件,在文件中添加一个不可见的字节来创建新行

标题并不具体,但我很难识别正确的关键词,因为我不确定这里发生了什么。出于同样的原因,我的问题可能有重复,如 。如果是这样的话:对不起!

我有一个通过平面文件接收数据的 Linux 应用程序。我不知道这些文件是如何生成的,但我可以毫无问题地读取它们。这些都是短文件,每个文件只有一行。

出于测试目的,我尝试修改其中一个文件并将其重新注入到应用程序中。但是当我这样做时,我可以在日志中看到它在消息末尾添加了一个神秘的分页符(导致应用程序无法识别该消息)...

举例来说,假设我收到一个名为original的平面文件,其中包含以下内容:

ABCDEF
Run Code Online (Sandbox Code Playgroud)

我复制了该文件并将其命名为copy

  • 如果我使用“diff”命令比较这两个文件,它会说它们是相同的(正如我所期望的那样)
  • 如果我通过 Vi 打开副本,然后退出而不更改也不保存任何内容,然后使用“diff”命令,它会说它们是相同的(正如我也期望它们一样)
  • If I open copy via Vi and then save it without changing anything and then use the "diff" command, I have the following (I added the dot for layout purpose):

diff original copy 1c1 < ABCDEF \ No newline at end of file --- .> ABCDEF

And if I compare the size of my two files, I can see that original …

linux vim diff flat-file character-encoding

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

CLOC diff(计算代码行数)与 git header

我尝试使用 git 存储库中的 diff 以及上次提交和 HEAD 检查代码行,但出现错误,

$ cloc -- diff 182712379cae1b953c5976854e735134530e8241 头

错误:

0 个文本文件。

0 个文本文件。

0 个文件被忽略。

2个错误:无法读取:182712379cae1b953c5976854e735134530e8241

无法读取:HEAD

没什么可算的。

git diff cloc

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

如何只弹出项目中特定文件的 git stash?

如何仅弹出项目中特定文件的 git stash?

git diff

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

如何比较两个相似的g ++ -S汇编输出?

diff失败,因为汇编列表中填充了略微不同的标签.

diff assembly g++

0
推荐指数
1
解决办法
637
查看次数

如何轻松合并两个源文件?

我正在与VS2005中的另一位C#同事合作,这是一个非常复杂的项目.但是,我们没有版本控制系统,我们互相发送最新版本并将更改复制到我们自己的文件中.

我们现在必须将两个文件(大多数项目是单个表单文件)合并到项目的最后一个版本中.

有什么建议?也许尝试差异工具?它必须快速完成,并且可能学习如何使用复杂的修订控制程序是不可行的.

c# version-control diff merge

0
推荐指数
1
解决办法
4653
查看次数

Subversion:从包含用户名的每个签到生成完整差异

我有一位不太了解源控制的教授.他要求我们使用注释来确定谁编写了每行代码.大多数类使用电子邮件作为版本控制,Visual C++作为语言导致一堆评论,插入符号和生成的代码.我的小组正在使用subversion和C#,我更愿意从存储库中获取历史记录,而不是在每行上都添加注释来混淆代码.

我需要一种方法来生成所有签入的可查看历史记录,其中显示每个用户修改的源数量.

像这样的格式会很好

Andy
/trunk/doc/file.txt (57%)
/trunk/project/app.h (100%)

Brian
/trunk/doc/file.txt (43%)
/trunk/project/app.cpp (60%)

Jeff
/trunk/project/app.cpp (40%)
Run Code Online (Sandbox Code Playgroud)

我该怎么做?BASH有足够的力量做到这一点还是应该使用python?(我会在linux系统上生成diff)

svn diff

0
推荐指数
1
解决办法
540
查看次数

源代码中的"<<<<<<"符号

我正在阅读其他人的Python代码,并看到这些符号出现在文件的顶部:

<<<<<< .mine
Run Code Online (Sandbox Code Playgroud)

还有

>>>>>>
Run Code Online (Sandbox Code Playgroud)

=======
Run Code Online (Sandbox Code Playgroud)

我不确定那是什么.编译时,解释器会在该行引发语法错误.

有谁知道这条线的含义?

python diff

0
推荐指数
1
解决办法
317
查看次数

如何用perl实现diff

任何人都可能有想法用perl实现"diff"命令的功能?谢谢

perl diff

0
推荐指数
1
解决办法
757
查看次数

标签 统计

diff ×10

git ×2

vim ×2

assembly ×1

bash ×1

c# ×1

character-encoding ×1

cloc ×1

flat-file ×1

g++ ×1

linux ×1

merge ×1

perl ×1

python ×1

svn ×1

testing ×1

version-control ×1