一千萬個為什麽

搜索

如何將每個Word放在一個新行上的變化空格分隔文件中?

Basically I'm transposing my one record with many columns 至many records in one column. A non-whitespace character begins a Word. I'm using gVim on Win7 so I need 至use CTRL-Q as my new line character. The number of spaces between words is not constant.

My attempt: :%s/\S/\S/g

Questions

  1. 為什麽我的嘗試不起作用?
  2. 如何在gVim中執行此操作?

兌換

foo  1true   0false +pos -neg ++dblpos    (lefp        }rcurl

 foo 
 1true 
 0false 
 +pos 
 -neg 
 ++dblpos 
 (lefp 
 }rcurl

最佳答案

如果:

  1. 您將 fileformat 設置為 unix ,以便Vim處理行結尾;
  2. 您替換空格而不是非空白字符。

從而:

:set fileformat=unix
:%s/\s\+/\r/g

\ r 替換替換命令時,Vim將選擇以文件格式結尾的相應行。

您的嘗試不起作用,因為替換中的 \ S 只是 S ,而不是匹配的字符。

轉載註明原文: 如何將每個Word放在一個新行上的變化空格分隔文件中?