Предположим, у меня есть несколько курсоров в нескольких строках, например:
foo|
barr|
foobar|
baz|
Как я могу автоматически вытолкнуть пробел в конце каждой строки на ровный край, как это ?:
foo |
barr |
foobar |
baz |
(В этих примерах |
должен быть мой курсор.)
Когда вы просто Tabили Spaceиз первоначальной договоренности, вы получите это:
foo |
barr |
foobar |
baz |
Это полезно, но не то, что я ищу. Я ищу какое-то сочетание клавиш, которое позволит мне сделать отступ от рваной вставки с несколькими курсорами до прямой колонки.
text-editing
sublime-text
GladstoneKeep
источник
источник
Tab
в конце каждой строки выравнивает рваную многоточечную вставку в прямой столбец, но с помощью регулярных выражений добиться того же эффекта невозможно. Я искал завершающие пробелы:\s*$
и заменил их символом табуляции:\t
- но\t
не добился того же эффекта, что и нажатиеTab
вручную.Ответы:
Вы можете использовать Sublime Alignment от wbond
Может потребоваться добавить это в файл настроек («Настройки»> «Настройки пакета»> «Выравнивание»> «Настройки-Пользователь»):
Заменить "|" с любым персонажем, которого вы хотите выровнять.
Редактировать: Как выяснил mtoast, добавление
"\n"
к «alignment_chars» дает желаемый эффект.Добавление символа новой строки в "alignment_space_chars", вероятно, не требуется и может удалить текст. Однако, с моими ограниченными тестами я не видел разницы.Удерживайте controlи нажмите в конце каждой строки. Затем нажмите горячие клавиши выравнивания (для linux по умолчанию это ctrl+ alt+ a). Вы обнаружите, что курсоры выровнены с самой дальней позицией курсора.
Edit2: добавление новой строки для
"alignment_space_chars"
удалит текст, если вы выделите блок текста, и Sublime Alignment не сможет найти что-то еще для выравнивания в строке (например, знак равенства).Кроме того, если Sublime Alignment не может найти что-то еще для выравнивания, добавление новой строки
"alignment_chars"
будет заполнять конец строк пробелами (или табуляциями в зависимости от ваших настроек), чтобы соответствовать самой длинной выделенной строке.источник
"\n"
(newline) к моему"alignment_chars"
и получил желаемый результат. (Примечание: я не добавил его"alignment_space_chars"
, что привело к удалению строк.) Если вы добавите это конкретное предложение ("n"
) в свой ответ, я приму.|
одним `\`Вы также можете сделать это без внешнего пакета, используя незначительный взлом, лишь немного больше усилий. Вот как:
|
представляет курсор в этих инструкциях.Создайте курсоры на всех нужных строках, используя Ctrl+ Click или выделив блок текста и нажав Ctrl+ Shift+ L. ( выбор документов )
Добавляйте дополнительные пробелы в конец каждого слова, пока каждый курсор не окажется в точке, в которой вы хотите разместить столбец, или за ней (не имеет значения, как далеко вы прошли):
( необязательно 1 ) Введите любой символ с пробелом; давайте использовать
c
:Нажмите, Homeчтобы курсоры пошли в начало строк:
Нажимайте → (right arrow) до тех пор, пока курсоры не окажутся там, где вам нужен ваш столбец
Нажмите Ctrl+ Shift+, →чтобы выбрать все следующие пробелы, а
c
затем нажмите Delete:( необязательно 1 ) Нажмите еще Deleteраз, чтобы очистить лишний символ пробела, который мы добавили на необязательном шаге.
1 Мы используем
c
символ, за которым следует пробел, только если в строках есть дополнительный контент, который мы хотим сохранить. Без него Ctrl+ Shift+ →выделит первое слово любого дополнительного содержимого в строках, что затруднит удаление.источник
ctrl+shift+right
она не обрабатывает все символы одинаково, поэтому она может выбрать больше, чем просто пробел.Shift-End
Delete
и это просто сработало. Это работает в некоторых случаях, но не в других?c
одной строке до конца слова в другой. Какая проблема у меня сейчас. Некоторые строки не содержат достаточного количества символов для прокрутки вправо, поэтому, когда вы делаете это, переносится на следующую строку, оставляя этот хак как таковой. Это взлом, а не полезная универсальная замена.Для тех, кто хочет сделать отступ для символов, отличных от
=
и|
, я смог установить пакет Alignment и изменить файл так,Sublime Text > Preferences > Package Settings > Alignment > Settings - User
чтобы он выглядел следующим образом:Затем я выбрал следующий код:
и нажал,
Command + Ctrl + A
чтобы выровнять его.Все было перемещено в крайний левый столбец, который
{create
мог занимать текст, при этом оставаясь на линии .источник