VIM中的行選擇
回答
:g!/hello/ yank A
的行存儲在寄存器中,粘貼他們做「AP
編輯: 可以縮寫爲
:g!/hello/y A
對於那些有興趣這意味着什麼VIM:
:g =全局搜索
!=否定布爾測試
/hello/=匹配「hello」的正則表達式
y =對每個匹配行執行的命令,在本例中爲「yank」
A =向「yank」命令的register參數。在這種情況下,註冊'a',但以大寫字母的形式表示追加到寄存器而不是替換。
只要你在系統上有grep
,你可以使用這個命令:
:!grep -v hello % > file
我通常做這個用的
:g/hello/d
一些變化即刪除包含「hello」的所有內容,然後選擇,抽出或需要做的任何事情,最後還原爲你。 我覺得這不是精神上的徵稅,然後建立命令行管道。
這是更短的命令比我同樣的問題。 – 2009-08-03 03:50:47
選擇並寫入新文件:
:g/hello/ . w!>> file
+1 - 但你需要切換g /到v /來選擇所有不包含你好的線 – rampion 2009-04-21 11:51:38
這是什麼。意思? – 2009-04-21 13:29:47
後Vim命令
:let @a='' | g!/hello/normal "Ayy
您將有所有不寄存器 'A' 有 '你好' 的線。你可以粘貼它的價值與「AP正常的命令或者把這個價值系統剪貼板
:let @*[email protected]
而且可以運行在Mac Os或「鼠標使用再按下‘Ctrl + V’(Windows)或‘Cmd + V鍵’點擊」在Linux上粘貼文本
神奇簡介:
@a存儲在綁定到值一個Vim變量。‘一’註冊
「 ap,「bp,」cp,..是在Vim正常模式下從特定寄存器中過去值的關鍵組合。
@ *是綁定到系統剪貼板的Vim變量。
let @ * = @a將寄存器'a'的值賦給系統剪貼板。
將此添加到您的.vimrc或使用插件目錄創建文件。
function s:copy_unmathced_lines(pattern)
let result_lines = []
for line in getline(1, '$')
if line !~ a:pattern
call add(result_lines, line)
endif
endfor
let @* = join(result_lines, "\n")
endfunction
command -nargs=1 CopyUnmatchedLines call s:copy_unmathced_lines(<q-args>)
使用情況很簡單:
CopyUnmatchedLines hello
,然後只需在任何編輯器中使用粘貼命令。現在
這個答案似乎很酷,但不知何故難以理解。也許,有人可以在答覆中澄清事情如何在表面下發揮作用。什麼是奇怪的事情,如「@a」和「讓」? Ex,vim或其他什麼? – 2009-07-30 00:42:01
另一個我沒有看到提到的是redirecton。
因此,對於你的情況,這將是
:redir > file
:g!/hello/
:redir END
又見
:help redir
:help verbosefile
FGM的回答幾乎有
:v將選擇不匹配
這麼線下面的代碼將不包含「hello」的行添加到名爲eee的文件中,創建i如果需要的話。
:v/hello/ . w!>>eee
與Blixtor的片段一個實際的例子:電子郵件朋友丟失 「:verbosefile」。
一打開手冊 「:E/TMP/NEW_FILE」 和 「:H verbosefile」,然後讓我們複製貓blixtor的提示:
:redir > /tmp/verbosefile_instructions
:g/verbosefile/
:redir END
II。確認您遵循有關您的電子郵件的標準規則,並提供標準問候:
:match ErrorMsg /\%>73v.\+/
:so /bin/greetings.vim
三。用Mutt發送文件。
例關於視覺的選擇和複製:假設你要分開的一部分:
視覺選擇它,然後按 「:」
然後使用命令:
:'<,'>! > ../new_file_in_a_subdirectory
錯誤:顏色將被複制到該文件,它實際上沒有應對寧願減少和粘貼。
非常簡單;
:v/hello/ |redir >> file
- 1. 對vim中的選擇執行'base64 --decode'
- 2. Vim的:選擇
- 3. 選擇在Vim中
- 4. 如何從vim命令行中選擇?
- 5. 在Vim中執行腳本選擇
- 6. 在Vim中,爲什麼V在選擇後選擇更多行?
- 7. Vim,選擇行後的同步屏幕
- 8. 在Vim中選擇頁面?
- 9. 選擇文本從Vim中
- 10. 如何選擇在Vim中
- 11. 在vim中搜索選擇
- 12. vim運行選擇命令(或功能)
- 13. 多選擇在Vim的
- 14. 的Vim:反向選擇
- 15. 取消VIM中的選擇模式
- 16. 將視覺選擇轉換爲vim中的視覺線選擇
- 17. 如何在vim中通過視覺選擇運行多行宏?
- 18. 在VIM中選擇整行,不包含換行符
- 19. 在vim的一行中選擇第二個對象
- 20. Vim Visual選擇變量
- 21. 如何在Vim中選擇鋸齒塊?
- 22. 從視覺搜索在VIM中選擇?
- 23. 在vim中搜索視覺選擇
- 24. 如何在vim中選擇文本?
- 25. 在vim中使用塊選擇從行尾刪除
- 26. 如何從vim中垂直所有行快速選擇區域?
- 27. 如何在Vim中選擇整行作爲運動?
- 28. vim命令在選擇中搜索和複製行
- 29. 更改vim選擇的文本顏色
- 30. vim:如何選擇粘貼的塊
「%」不是grep的特殊字符,它是vim的命令行特殊字符,請參閱:幫助CMDLINE特 – user55400 2009-04-21 13:49:01