запятые движутся вперед - PullRequest
       2

запятые движутся вперед

2 голосов
/ 09 января 2012

Может кто-нибудь посоветовать, как я могу двигаться вперед (или назад) с помощью n запятых в emacs?

Я пытаюсь пройтись по файлу CSV

Я знаю, что могу сделать что-то вроде:

C-u 100 M-f

, но возможность сделать что-то более регулярное, например, специально для запятых, будет более точным

Ответы [ 4 ]

7 голосов
/ 09 января 2012

Другая вещь, которую я пробовал, комбинировала C-u # и C-s, но это не сработало

Это будет с макросом клавиатуры, который вы можете определить в интерактивном режиме.

  • C-x ( - начать запись
  • C-s , RET - поиск запятой (важно RET; см. Ниже)
  • C-x ) - остановить запись

Теперь вы можете снова выполнить этот макрос с помощью Cx e (а затем просто e для продолжающихся одиночных повторений) или использовать префиксный аргумент для его повторения заданное количество раз:

C-u 100 C-x e

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

редактирование:

Более гладко для специальных макросов, вы можете указать префиксный аргумент при остановке записи, чтобы получить ровно столько повторений, включая тот, который использовался для записи:
Cx ( Cs , RET Cu 100 Cx )

Я наблюдал неожиданное поведение с этой последовательностью, прежде чем добавить RET для явного вызова isearch-exit перед остановкой записи. Он вел себя так, как будто он только записывал и повторял запятую (приводя к тому, что запятая вставлялась много раз вместо поиска много раз).

Используя edit-last-kbd-macro после записи, я мог видеть причуду при использовании isearch в макросе, так что C-x, напечатанный при остановке записи, фактически включается в определение макроса, что, вероятно, вызывало проблему для этот конкретный метод вызова. Аналогично с альтернативными привязками F3 и F4 (в этом случае F4 заканчивается в определении). Я не знаю, является ли это ошибкой или функцией, но, очевидно, стоит прекратить isearch перед остановкой записи макроса!

p.s. Хотя два набора привязок записи макросов не одинаковы в всех отношениях, все здесь также работает с F3 и F4, поэтому для этого примера вы могли бы немного более кратко использовать F3 Cs , RET Cu 100 F4

1 голос
/ 09 января 2012

Используйте Режим CSV , который даст вам удобные функции, чтобы делать то, что вы хотите и многое другое

1 голос
/ 09 января 2012

С iy-go-to-char вы можете сделать M-3 Cc f , , чтобы перейти ктретья запятая.

0 голосов
/ 09 января 2012

Вы можете записать макрос с Cu Cu Mf или Cu Cu Cf и использовать его.Если он используется редко, запишите его, используя PF3 , и воспроизведите его, нажав PF4 .

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