Как отключить перенос строк в Spacemacs?

19

У меня ограниченный опыт в Emacs. Пытался найти решение для отключения переноса строк в Spacemacs, но не смог найти ни одного.

Решение этой проблемы в Vim заключается в выполнении set nowrap. Но это не работает в Spacemacs.

Любое решение этого будет высоко ценится.

Vamsee
источник
Я никогда не видел Spacemacs раньше, но похоже, что вы хотите отключить auto-fill-mode. Попробуйте M-x auto-fill-mode(это включит и выключит его), и, если это работает и это то, что вы имеете в виду, вы можете автоматически отключить его в файле инициализации.
Дан
3
Попробуйте следующее C-h v truncate-linesпосле запуска Spacemacs. Это скажет вам, на что он настроен при запуске.
Джонатан Лич-Пепин
@ JonathanLeech-Pepin Спасибо, ваш совет помог мне отладить проблему.
Vamsee

Ответы:

9

Добавьте это к вашей ~/.spacemacsфункции конфигурации:

(add-hook 'hack-local-variables-hook (lambda () (setq truncate-lines t)))
syl20bnr
источник
1
Я с уважением не согласен с этим ответом, потому что он существенно превосходит (переопределяет) предыдущие настройки (если они противоречат), и он работает в этом случае, потому что он hack-local-variables-hookвызывается позже в процессе загрузки буфера. Лучшим решением было бы сделать его основным для конкретного режима или разработать лучшее глобальное решение, которое не использует hack-local-variables-hook.
юрист
@lawlist Я согласен, что это взлом, но на AFAIK нет режима для усеченных линий. Если вы хотите это глобально, это может быть сложно с помощью основных режимов, и это не будет лучше, чем это. Лучше использовать вместо этого функцию переключения, но она не предлагает принудительную активацию усеченных линий.
syl20bnr
29

23 ноября syl20bnr добавил новый переключатель spacemacs/toggle-truncate-lines, который доступен на SPC t l. Еще одно переключение, которое вы также можете найти полезным spacemacs/toggle-visual-line-navigation, доступно на SPC t L. Смотрите Github коммит .

Вот как вы dotspacemacs/user-configможете выглядеть, чтобы включить оба переключателя:

(defun dotspacemacs/user-config ()
  "Configuration function for user code.
This function is called at the very end of Spacemacs initialization after
layers configuration. You are free to put any user code."
  (spacemacs/toggle-truncate-lines-on)
  ;; Visual line navigation for textual modes
  (add-hook 'text-mode-hook 'spacemacs/toggle-visual-line-navigation-on)
)

Если вы не знаете, где dotspacemacs/user-configнаходится .spacemacsфайл, он находится в вашем файле и доступен при нажатии SPC f e d.

Крюк для spacemacs/toggle-visual-line-navigation-onпотому , что он не работает глобально иначе.

Миржан Иркегулов
источник
Я искал этот режим крючка целую вечность! Благодарность!
hoosierEE
2
Это эквивалент :set nowrap. Благодарность!
shakerlxxv
1
SPC t Lдля легкой победы.
Sjas
8

M-x toggle-truncate-lines RET Emacs-эквивалент Vim's :set wrap!

няня
источник
И программно:(setq truncate-lines t)
юрист
@nanny Спасибо, ваше предложение работает для отключения переноса строк после запуска spacemacs. Но предложение @lawlist о добавлении (setq truncate-lines t)в ~ / .spacemacs не работает.
Vamsee
@Vamsee - предложенная мною строка кода предназначена для программного использования - например, при написании функции. Он может быть использован по требованию, набрав: M-x eval-expression RET (setq truncate-lines t) RET
Lawlist
2
@Vamsee - truncate-linesлокальная переменная буфера, что означает, что код должен выполняться, пока фокус находится внутри целевого буфера. Указанная вами библиотека представляет собой набор из миллиона предварительно выбранных пользовательских настроек, включая определенные варианты выбора, основанные на различных основных режимах. Чтобы действительно отследить вашу проблему, вам нужно будет указать, какой основной режим вы используете, - тогда необходимо будет проверить все хуки основных режимов, используемых рассматриваемой библиотекой, и даже тогда, возможно, у вас где-то есть эта настройка. остальное. Например, visual-line-modeвключает упаковку
lawlist
1
@lawlist Наконец-то это работает, я должен был установить пользовательскую переменную внутри функции, custom-set-variablesа не в dotspacemacs/configфункции. Спасибо за вашу помощь.
Vamsee
2

Я добавил это в мой файл инициализации внутри, dotspacemacs/user-configчтобы отключить автоматический разрыв строки:

(spacemacs/toggle-auto-fill-mode-off)

По умолчанию вы можете включить / выключить с помощью SPC t F.

Гай Гур-Ари
источник
0

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

Первое выражение Миржана Иркегулова сработало, а второе не сработало (add-hook 'text-mode-hook 'spacemacs/toggle-visual-line-navigation-on)

Вместо этого мне пришлось использовать (global-visual-mode t)

ЭТОМУ ПОЛЬЗОВАТЕЛЮ НУЖНА ПОМОЩЬ
источник