我使用Sed腳本來查看只有少於或者超過長度的行,然後..字符。
該腳本不能與兩者一起工作(當我想查看少於80個字符的行以及70個字符以上的行時)。查看只行少於/長度然後...字符
有誰知道是否有Vim中一個簡單的解決方案,可以只查看這些行和空出(不要刪除)所有其他線路
體育
一個)視圖只有小於75個字符
b)中線僅查看線長於80個字符
b)中僅查看少於75個字符的行和較長然後65個字符
我使用Sed腳本來查看只有少於或者超過長度的行,然後..字符。
該腳本不能與兩者一起工作(當我想查看少於80個字符的行以及70個字符以上的行時)。查看只行少於/長度然後...字符
有誰知道是否有Vim中一個簡單的解決方案,可以只查看這些行和空出(不要刪除)所有其他線路
體育
一個)視圖只有小於75個字符
b)中線僅查看線長於80個字符
b)中僅查看少於75個字符的行和較長然後65個字符
可以使用vimgrep
命令:
:vimgrep /\v^.{65,75}$/ %
它會提取其中包含65~75
焦線當前文件中的字符。
{,74} => less than 75
{81,} => great than 80
{66,74} => between 65 and 75 (exclusively)
更新:
你可以使用這個命令來清空不匹配的行:
:v/\v^.{65,75}$/s/.*//
它會清空包含0~64
或76~+∞
字符的行。
http://www.catonmat.net/blog/sed-one-liners-explained-part-two/具有命令行版本(61和62 ...)
感謝沃爾夫岡,我使用這些在我的劇本但有兩件事情,不這樣做:我無法將它們組合起來(這意味着更長的話..字符,不到..字符),如果我選擇一個文本塊,在應用其中一個之後,選擇不再相同。並且.. sed命令不能清空所有其他(不匹配)行。 – Reman
與ZyX的回答類似,這可以摺疊不包含65〜75個字符的行。
:set foldmethod=expr foldexpr=getline(v:lnum)!~'\\v^.{65,75}$' foldlevel=0
謝謝Ingo。很高興知道。 – Reman
謝謝,但它不是完全一樣,我問,但非常有用的知道:) – Reman
Tnx的更新。非常好,但我想看到文本中的行並清空所有不匹配的行。 – Reman
您的更新:是的,這就是我想要的。 ':v/\ v'和'/ s /.*//'是做什麼的?沒有使用「非常神奇」的正則表達式的代碼是什麼?在這種情況下,我想我會更好地理解它。我從來沒有非常神奇的工作。 – Reman