Для Sublime Text решением этой проблемы является внутренняя команда Arithmetic
.Нечто подобное может или не может быть доступно в VS Code (возможно, с каким-либо расширением), но я недостаточно знаком с ним, чтобы сказать наверняка.
Эта команда позволяет вам предоставить выражение некоторыхсортировать, чтобы применить ко всем местоположениям курсора и / или выделенному тексту.
В качестве демонстрации, вот пример, который вы обрисовали в общих чертах выше:
![Sample Arithmetic Example](https://i.stack.imgur.com/DWqbG.gif)
Выражение, которое вы предоставляете, вычисляется один раз для каждого выбора /вставляется в буфер в тот момент, и результат выражения вставляется в буфер (или в случае выделенного текста он заменяет выделение).Также обратите внимание, что когда вы вызываете эту команду из панели ввода (как в записи экрана), панель показывает предварительный просмотр того, каким будет выходное выражение.
Специальная переменная i
ссылается на выборчисло;выборки нумеруются, начиная с 0
, поэтому выражение i + 1
имеет эффект вставки номеров выборки, начинающихся с 1 вместо 0.
Специальная переменная x
относится к тексту в конкретном выделениивместо.Это позволяет вам выбрать текст, а затем преобразовать его на основе вашего выражения.Примером может быть использование x * 2
сразу после вышеприведенного примера (убедитесь, что все выборки все еще присутствуют и оборачивая числа), чтобы удвоить все.
Вы можете использовать обе переменные одновременно, если хотите,а также что-либо в библиотеке Python math
, например math.sqrt(i)
, если вам нужны действительно эзотерические журналы.
В приведенном выше примере интерактивно выбирается команда из палитры команд, где выражение автоматически по умолчаниюна тот, который вы хотите для вашего примера (i + 1
).
Если вы хотите использовать это в качестве привязки ключа, вы можете привязать ключ к команде arithmetic
и предоставить выражение напрямую.Например:
{
"keys": ["super+a"],
"command": "arithmetic",
"args": {
"expr": "i+1"
},
},