我正在尝试创建一个命令,该命令将当前行复制到新选项卡,然后将其中断(.
),然后在下面(文本末尾)添加一个空白行,最后转到开头文字(第一行)。我正在使用以下代码:
command Lnew y | tabnew | pu | s/\. /\r\r/g | noh | o | 1G
它可以工作到noh
部分,但是o
和1G
部分不起作用。问题出在哪里?
答案 0 :(得分:3)
您的命令是Ex命令和普通模式命令的混合。您有两种选择:
仅使用Ex命令
@foreach($items as $indexKey => $item)
<div class="MenuPage_contentArea">
<div class="Category_root" id="one">
<div class="Category_categoryHeader">
<div><h2 class="Category_name">{{$item->item_category}}</h2></div>
<div class="Category_description"></div>
</div>
<div class="Category_itemsContainer">
<div class="Category_itemContainer">
<button class="Item_root Button_root">
<div class="Item_image" style="background-image: url('{{ asset('images/' . $item->item_image) }}');"></div>
<div class="Item_itemContent">
<div class="Item_topSection">
<span class="Item_name">{{$item->item_title}}</span>
<span class="Item_price">${{$item->item_price}}</span></div>
<div class="Item_description">{{$item->item_details}}</div>
</div>
</button>
</div>
</div>
</div>
</div>
@endforeach
在普通模式命令前加上y | tabnew | put | s/\. /\r\r/g | nohlsearch | put='' | 1
:help :normal
使用y | tabnew | put | s/\. /\r\r/g | nohlsearch | normal! o^O1G
插入文字<C-v><C-o>
。
答案 1 :(得分:2)
可能的改进:
command! Lnew y | tabnew | pu | -d | s/\. /\r/g | noh | pu='' | 1
Ex'put'命令在复制的行上方添加新行。添加“ -d”命令可解决此问题。
通过我的阅读,该问题询问有关在句点处拆分并在文本末尾添加空白行的问题。在替代命令中似乎只需要一个'\ r'。
答案 2 :(得分:1)
在“查找并替换”命令中,还必须跳过空格,因此,代替:
s/\. /\r\r/g
您必须使用:
s/\.\ /\r\r/g
在Vim成立的初期,我一直在为此苦苦挣扎。希望这会有所帮助。