每当删除一行时,在 vim 中记录行号
log line number in vim whenever a line is deleted
我有一个生成包含数千行的 txt 文件的应用程序。我必须通过文件(使用 vim)手动删除一些行。但是,如果需要更改格式,我可能需要再次生成相同的文件。这将使我再次浏览文件以删除相同的行。
避免手动重复删除的解决方案是vim在我删除一行时以某种方式记录行号。然后我可以使用一些脚本来删除这些行。是否有可能在 vim 中获得此行为?
否则,是否有任何其他编辑器可以实现此行为?我必须删除很多行,手动记录每个行号是不可行的。
根据 phd and wxz, I was able to use git-diff
of the file to extract the deleted lines by using node package gitdiff-parser 解析差异的建议。
const gitDiffParser = require('gitdiff-parser')
const { exec } = require("child_process");
let p = new Promise( (res,rej) => {
exec("git diff -U0 file.txt", (error, stdout) => {
res(stdout)
});
});
p.then(s=>{
diff = gitDiffParser.parse(s);
diff[0].hunks.forEach(element => {
console.log(`start: ${element.oldStart}, end: ${element.oldStart + element.oldLines - 1}`)
});
})
另一种解决方案或说 hack 是在文件的每一行中附加行号,并在删除所需行后提取未删除的行号。
我有一个生成包含数千行的 txt 文件的应用程序。我必须通过文件(使用 vim)手动删除一些行。但是,如果需要更改格式,我可能需要再次生成相同的文件。这将使我再次浏览文件以删除相同的行。
避免手动重复删除的解决方案是vim在我删除一行时以某种方式记录行号。然后我可以使用一些脚本来删除这些行。是否有可能在 vim 中获得此行为?
否则,是否有任何其他编辑器可以实现此行为?我必须删除很多行,手动记录每个行号是不可行的。
根据 phd and wxz, I was able to use git-diff
of the file to extract the deleted lines by using node package gitdiff-parser 解析差异的建议。
const gitDiffParser = require('gitdiff-parser')
const { exec } = require("child_process");
let p = new Promise( (res,rej) => {
exec("git diff -U0 file.txt", (error, stdout) => {
res(stdout)
});
});
p.then(s=>{
diff = gitDiffParser.parse(s);
diff[0].hunks.forEach(element => {
console.log(`start: ${element.oldStart}, end: ${element.oldStart + element.oldLines - 1}`)
});
})
另一种解决方案或说 hack 是在文件的每一行中附加行号,并在删除所需行后提取未删除的行号。