2

У меня есть текст, подобный следующему:

case "UID":
if (!Convert.IsDBNull(objDataReader["XYZ"]))
{
    objQualitativeAssessmentBiz.XYZ = objDataReader["XYZ"].ToString();
}
break;
case "GeneratedChaseId":
if (!Convert.IsDBNull(objDataReader["XYZ"]))
{
    objQualitativeAssessmentBiz.XYZ = objDataReader["XYZ"].ToString();
}
break;

Теперь я хочу заменить каждый XYZ словом, которое следует за словом: case. Таким образом, замененный текст будет выглядеть так:

case "UID":
if (!Convert.IsDBNull(objDataReader["UID"]))
{
    objQualitativeAssessmentBiz.UID = objDataReader["UID"].ToString();
}
break;
case "GeneratedChaseId":
if (!Convert.IsDBNull(objDataReader["GeneratedChaseId"]))
{
    objQualitativeAssessmentBiz.GeneratedChaseId = objDataReader["GeneratedChaseId"].ToString();
}
break;

Есть ли подходящий редактор, который может выполнить эту задачу? Если так, то как?

1 ответ1

1

Вы можете использовать функциональность записи vim. Вы можете прочитать об этом здесь.

Что касается вашего фрагмента кода, попробуйте следующее в вашем редакторе vim/vi:

  1. Сначала выберите слово "case", поместив курсор на слово и нажав *
  2. Теперь перейдите к началу файла -> gg
  3. Включить запись -> QA
  4. Теперь запустите следующую последовательность клавиш в командном режиме.

    n w w yw j $ b b P l dw b yw j j 0 w w p l dw i <space> <esc> b yw w w w w P dw dw
    
  5. Отключить запись -> q. Ваша запись была сохранена под клавишей "a" (потому что вы включили ее, запустив qa)

  6. Теперь вы можете запускать эту запись столько раз, сколько захотите. Поэтому, если вы хотите, чтобы он был применен ко всему файлу, запустите его столько раз, сколько общего количества операторов case. Для 10 операторов выведите -> 10 @ a.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .