Код Visual Studio: настраиваемый ярлык для редактирования номеров исходного кода и деления на два - PullRequest
0 голосов
/ 05 августа 2020

Я не думаю, что есть способ сделать это, но подумал, что все равно спрошу ... Допустим, у меня есть сотни чисел в сценарии python, которые все нужно разделить на 2. Есть ли какие-нибудь способ создать сочетание клавиш, чтобы я мог выделить число, нажать сочетание клавиш, и оно будет автоматически заменено на уменьшенную вдвое сумму? Например, в приведенном ниже исходном коде мне потребуется первая строка для преобразования из 0:4 в 0:2, а вторая строка для преобразования из 4:16 в 2:8. Я бы сделал это вручную, но сейчас нужно преобразовать сотни чисел. Код Visual Studio - это моя IDE, которую я использую.

test1 = word[0:4]
test2 = word[4:16]
test3 = word[16:32]
test4 = word[32:1024]
test5 = word[1024:1086]
test6 = word[1086:1900]
test7 = word[1900:2000]
test8 = word[2000:3000]

Ответы [ 3 ]

2 голосов
/ 05 августа 2020
• 1000 регулярное выражение ", alt + R по умолчанию):

поиск word\[(\d+):(\d+)\] и замена на word[$1/2:$2/2], в результате получится

test1 = word[0/2:4/2]
test2 = word[4/2:16/2]
test3 = word[16/2:32/2]
test4 = word[32/2:1024/2]
test5 = word[1024/2:1086/2]
test6 = word[1086/2:1900/2]
test7 = word[1900/2:2000/2]
test8 = word[2000/2:3000/2]

Это будет оценивать во время выполнения требуемый результат.

1 голос
/ 05 августа 2020

Вы можете заменить числа фактическим значением выражения во время замены расширением Генератор текста регулярных выражений v0.8.0

Сначала вы выбираете все части текста, соответствующие одному и тому же регулярному выражению как использует DeepSpace, затем используйте одно и то же регулярное выражение для извлечения групп захвата для каждого выбора и использования их в качестве числовых c значений в другом регулярном выражении, которое генерирует текст и может выполнять вычисления.

Может быть удобно поставить используемые регулярные выражения в качестве текста комментария в файле. Вы можете копировать части файла и вставлять их в поля ввода расширения.

# orig regex: word\[(\d+):(\d+)\]
# generate regex: word\[{{=N[1]/2}}:{{=N[2]/2}}\]
  1. Вставьте первое регулярное выражение word\[(\d+):(\d+)\] в диалоговом окне «Найти» и отметьте кнопку регулярного выражения (.*) . Если регулярное выражение по-прежнему выбрано, когда вы открываете диалоговое окно «Найти», оно будет экранировать множество символов, просто вставьте правильную версию
  2. Щелкните в документе, чтобы фокус больше не находился в диалоговом окне «Найти»
  3. Выберите все строки, соответствующие регулярному выражению Find: Ctrl + Shift + L
  4. Запустите команду: Generate text based on Regular Expression (regex) с Ctrl + Shift + P
  5. Вставьте первое регулярное выражение, все еще находящееся в буфере обмена, в поле ввода Match Original Text Regular Expression и нажмите Enter
  6. Выберите и скопируйте и вставьте сгенерированное регулярное выражение в следующее поле ввода Generator Regular Expression
  7. Результат замены отображается в редакторе, вы можете принять его, нажав Введите или отклонить с помощью Es c

Результат с тестовым файлом будет:

test1 = word[0:2]
test2 = word[2:8]
test3 = word[8:16]
test4 = word[16:512]
test5 = word[512:543]
test6 = word[543:950]
test7 = word[950:1000]
test8 = word[1000:1500]

Если вам нужно делать это регулярно, вы можете определить сочетание клавиш, которое вводит используемые регулярные выражения в поля ввода и позволяет при необходимости изменять их.

  {
    "key": "ctrl+f10",
    "when": "editorTextFocus",
    "command": "regexTextGen.generateText",
    "args": {
      "originalTextRegex" : "word\\[(\\d+):(\\d+)\\]",
      "generatorRegex" : "word\\[{{=N[1]/2}}:{{=N[2]/2}}\\]",
      "useInputBox" : true
    }
  }

Шаги 4 .. 7 теперь выполняются с помощью сочетания клавиш.

0 голосов
/ 07 августа 2020
  1. Найти: word\[(\d+):(\d+)\] Заменить: word[$1/2:$2/2] из @ DeepSpace
  2. Найти: \d+/\d+ найти все num/num2 [без замены]
  3. Ctrl + Shift + L , чтобы выбрать все ваши num/num2 отдельно
  4. Run Emmet: Evaluate Math Expression из палитры команд (или привязать его к привязке клавиш)

Эммет может делать такие вычисления.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...