Ori*_*ski 14 vi vim newline line-breaks substitution
假设你有这个文字:
name1 = "John"; age1 = 41;
name2 = "Jane"; age2 = 32;
name3 = "Mike"; age3 = 36;
...
Run Code Online (Sandbox Code Playgroud)
并且您希望将每一行拆分为两行以得到如下结果:
name1 = "John";
age1 = 41;
name2 = "Jane";
age2 = 32;
name3 = "Mike";
age3 = 36;
...
Run Code Online (Sandbox Code Playgroud)
你会如何自动化这个操作?
一些说明:
:'<,'>:norm ^3f r^M***,***序列说明:
- norm用于在正常模式下执行以下命令
- ^用于将光标移动到行的开头
- 3f<space>用于将光标移动到行中的第3个空格
- r^M用新行替换该空格
jah*_*roy 31
要对整个文件进行操作,请使用以下命令:
:%s/; /;\r/
Run Code Online (Sandbox Code Playgroud)
要仅对选定的文本进行操作,请使用:
:'<,'>s/; /\r/
Run Code Online (Sandbox Code Playgroud)
英文翻译:
" 替换每次出现的 分号,然后用分号 替换一个空格, 然后换行."
说明:
% - operate on the entire file
s - substitute
/ - symbol that separates search/replace terms
; - the character you're searching for (notice I added a space)
;\r - the replacement text (semi-colon followed by newline)
Run Code Online (Sandbox Code Playgroud)
这与Vi中的替换基本相同.
为了更加热心:
我实际上在我的.vimrc文件中映射了以下这样的情况:
"
" add a newline after each occurrence of the last search term
"
nnoremap SS :%s//&\r/<CR>
Run Code Online (Sandbox Code Playgroud)
此命令在最后一次搜索模式的第一次出现时拆分文件的每一行.
因此,对于您的用例,您可以这样做:
;(您可能想要也可能不想要包含空间......由您自己决定)SS文件的每一行都将在第一个;符号处拆分.
为了澄清,您将使用以下5个击键:
/ ; ENTER S S
这对于快速格式化XML,HTML等非常方便...
| 归档时间: |
|
| 查看次数: |
16266 次 |
| 最近记录: |