我需要在Vim中将;\s*\<do\>
替换为\rdo
。但是,如果在其前面有一个Fortran注释符号;\s*\<do\>
,即在搜索模式!
中,我还需要确保!.*;\s*\<do\>
不会被替换。例如,未注释行中的; do
j=2; do i=1, 10
应替换为
j=2
do i=1,10
但不应替换以下注释部分中的; do
,
k=3 ! j=2; do i=1, 10
我怎样才能在vim中这样做?我尝试了\(!.*\)\@!;\s*\<do\>
但它不起作用。
答案 0 :(得分:3)
我根据你的例子编辑了这个答案:
尝试使用:g!/<pattern1>/s/<pattern2>/<replacement>/g
:
:g!/!.*/s/\v;\s*do/\rdo/g
仅在不包含pattern2
的行上用replacement
替换pattern1
。
原始答案:
以下模式应该按照您的要求执行:/[^*]\{0,1\}\zs;\\s\*\\<do\\>
。
你可以用它来替换你想要的任何东西,例如%s/<pattern>/\rdo/g
。
答案 1 :(得分:0)
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/add_song_layout"
tools:context="com.example.android.playmymusicapp3.AddSongActivity">
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent">
</ScrollView>
<include
layout="@layout/app_bar_main"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<com.github.clans.fab.FloatingActionButton
android:id="@+id/floatingButton"
android:src="@mipmap/plus"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:onClick ="onClick"
android:layout_marginBottom="16dp"
android:layout_marginRight="16dp"
app:backgroundTint="@color/colorPrimary">
</com.github.clans.fab.FloatingActionButton>
<TextView
android:id="@+id/textView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="82dp"
android:text="Add songs to your event..."
android:textSize="20sp"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_marginTop="37dp"
android:layout_below="@+id/textView3"
android:layout_alignParentStart="true">
<EditText
android:id="@+id/editText8"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="15dp"
android:layout_marginRight="15dp"
android:ems="10"
android:hint="Artist"
android:inputType="textPersonName" />
<EditText
android:id="@+id/editText7"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="15dp"
android:layout_marginRight="15dp"
android:ems="10"
android:hint="Title"
android:inputType="textPersonName" />
</LinearLayout>
</RelativeLayout>