LINUX.ORG.RU
решено ФорумTalks

Emacs тормозит при удалении

 ,


0

1

Короче, задолбался я искать ответы, братья.
Осваиваю Emacs и VIM параллельно, чтобы сравнивать удобство и все остальные чудеса. К VIM пока вопросов нет. В Emacs дичайшие тормоза, когда пытаешься удалить что-нибудь.

Нажимаю ли я C-Backspase, нажимаю ли M-DEL — тормозит страшно.
Нельзя ли там что-нибудь подкрутить, чтобы такого не было?

Мне нравятся оба редактора, блин. Но кое-что не перестаёт беспокоить.
Конечно, хотелось бы спросить по поводу личного опыта использования Emacs теми, кому приходится работать с большими текстовыми материалами (несколькими одновременно). Но не хочу утомлять вас.

Ответ на: комментарий от Sasazuka

То есть, выходит, что переключение режимов в VIM — не единственная процедура. Ещё и раскладку надо переключить.

В емаксе решал это через назначение переключения раскладки на отдельное сочетание, в котором работали все сочетания клавиш, можно найти варианты решения это в сети.

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

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

kodx
()
Ответ на: комментарий от StillSteal

Вообще-то в виме можно даже без биндинга своих конфигов выходить из инсерт режима по Ctrl-C (с одним условием, что не выполняются InsertLeave автокоманды) или Ctrl-[. Так что дело лишь в ваших пробелах в знаниях. Ну а если оратор выше за год работы с вим постоянно клацал Esc - то это уже диагноз.

Конфиг был один на всех, чтобы везде была одна среда разработки. Нужно было работать, а не ковыряться в конфигах.

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

Одна из причин, почему не хотелось самому копаться в виме это его ужасный VimL, в котором трудно было написать что-то чуть больше, чем простое выполнение команд в очередь. В емаксе же используется lisp, хоть и в виде elisp.

А вообще те кто пользуются Vim в работе перебиндивают Esc или в самих Иксах или на крайний случай в Vim.

Можно просто не использовать программы с переключением режимов, а ребинд капслока помогает не только в емаксе.

Короче к чему я это - ищите проблему прежде всего в себе.

Надо попробовать оба редактора, чтобы выбрать тот, который больше подходит.

Сам я продолжаю использовать вим для редактирования конфигов, потому что он всегда присутствует на серверах, даже если в урезанном виде vi. Для написания и редактирования кода предпочитаю емакс.

kodx
()
Ответ на: комментарий от kodx

Конфиг был один на всех, чтобы везде была одна среда разработки.

Не понял по поводу одного конфига и СРЕДЫ разработки, ну да ладно. Похоже те еще у вас были на то время мазохисты во главе.

а ребинд капслока помогает не только в емаксе

В моем случае левого Alt. При нажатии Esc, при сочетании с другой клавишей - Ctrl. Мой мизинец мне сказал спасибо.

StillSteal
()
Последнее исправление: StillSteal (всего исправлений: 1)
Ответ на: комментарий от StillSteal

Не понял по поводу одного конфига и СРЕДЫ разработки, ну да ладно. Похоже те еще у вас были на то время мазохисты во главе.

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

kodx
()
Ответ на: комментарий от kodx

 в емакс 26

Пробую собрать и установить его, но не получается.
Выдают мне нечто такое:

./configure
checking for xcrun... no
checking for GNU Make... make
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to enable C11 features... none needed
checking whether gcc and cc understand -c and -o together... yes
checking for putenv... yes
checking for sbrk... yes
checking for fchmod... yes
checking for readlinkat... yes
checking for explicit_bzero... no
checking for faccessat... yes
checking for fcntl... yes
checking for fdopendir... yes
checking for fstatat... yes
checking for fsync... yes
checking for gettimeofday... yes
checking for nanotime... no
checking for lstat... yes
checking for mkostemp... yes
checking for tzset... yes
checking for pipe2... yes
checking for pselect... yes
checking for readlink... yes
checking for strtoimax... yes
checking for symlink... yes
checking for localtime_r... yes
checking for timegm... yes
checking for futimes... yes
checking for futimesat... yes
checking for futimens... yes
checking for utimensat... yes
checking for lutimes... yes
checking for getdtablesize... yes
checking how to run the C preprocessor... gcc -E
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking minix/config.h usability... no
checking minix/config.h presence... no
checking for minix/config.h... no
checking whether it is safe to define __EXTENSIONS__... yes
checking whether _XOPEN_SOURCE should be defined... no
checking for Minix Amsterdam compiler... no
checking for ar... ar
checking for ranlib... ranlib
checking for special C compiler options needed for large files... no
checking for _FILE_OFFSET_BITS value needed for large files... no
checking whether gcc accepts -g3 -O2... yes
checking whether the compiler is clang... no
checking whether C compiler handles -Werror -Wunknown-warning-option... no
checking for a BSD-compatible install... /usr/bin/install -c
checking command to symlink files in the same directory... ln -s
checking for install-info... /usr/bin/install-info
checking for gzip... /bin/gzip
checking for 'find' args to delete a file... -delete
checking for setfattr... yes
checking for -znocombreloc... yes
checking whether addresses are sanitized... no
checking for library containing sqrt... -lm
checking for pkg-config... /usr/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking for machine/soundcard.h... no
checking for sys/soundcard.h... yes
checking for soundcard.h... no
checking for mmsystem.h... no
checking for _oss_ioctl in -lossaudio... no
checking for ALSA... no
checking for linux/fs.h... yes
checking for malloc.h... yes
checking for sys/systeminfo.h... no
checking for sys/sysinfo.h... yes
checking for coff.h... no
checking for pty.h... yes
checking for sys/resource.h... yes
checking for sys/utsname.h... yes
checking for pwd.h... yes
checking for utmp.h... yes
checking for util.h... no
checking for sys/prctl.h... yes
checking for sys/socket.h... yes
checking for stdlib.h... (cached) yes
checking for unistd.h... (cached) yes
checking for sys/param.h... yes
checking for pthread.h... yes
checking for malloc/malloc.h... no
checking for sys/un.h... yes
checking for dirent.h... yes
checking for execinfo.h... yes
checking for stdio_ext.h... yes
checking for getopt.h... yes
checking for sys/cdefs.h... yes
checking for sys/time.h... yes
checking for limits.h... yes
checking for wchar.h... yes
checking for stdint.h... (cached) yes
checking for inttypes.h... (cached) yes
checking for sys/select.h... yes
checking for sys/stat.h... (cached) yes
checking for ADDR_NO_RANDOMIZE... yes
checking if Linux sysinfo may be used... yes
checking for term.h... no
checking whether time.h and sys/time.h may both be included... yes
checking whether sys_siglist is declared... yes
checking for sys/wait.h that is POSIX.1 compatible... yes
checking for net/if.h... yes
checking for ifaddrs.h... yes
checking for net/if_dl.h... no
checking for struct ifreq.ifr_flags... yes
checking for struct ifreq.ifr_hwaddr... yes
checking for struct ifreq.ifr_netmask... yes
checking for struct ifreq.ifr_broadaddr... yes
checking for struct ifreq.ifr_addr... yes
checking for struct ifreq.ifr_addr.sa_len... no
checking whether gcc understands -MMD -MF... yes
checking for X... no
checking for X... true
configure: error: You seem to be running X, but no X development libraries
were found.  You should install the relevant development files for X
and for the toolkit you want, such as Gtk+ or Motif.  Also make
sure you have development files for image handling, i.e.
tiff, gif, jpeg, png and xpm.
If you are sure you want Emacs compiled without X window support, pass
  --without-x
to configure.

Я поискал в Сети.

Нашёл совет, но не знаю, разумно ли ему следовать.

Нормален он, этот ppa:kelleyk/emacs, не знаете?

Ещё один малый советовал установить зависимости, используя предыдущую версию Emacs, и уже после этого пробовать собрать Emacs 26. Можно этим советом пользоваться, не подскажете?

P.S. Почему-то не работает cut /cut. Наверное, не совместим с br. А без br всё валится в кучу. Поэтому, использовал code. Если что, то вот такие вот дела.

Sasazuka
() автор топика
Последнее исправление: Sasazuka (всего исправлений: 2)
Ответ на: комментарий от kodx

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

Старую версию Emacs (почему их так медленно обновляют в репозиториях?) снёс и пытаюсь собрать последнюю из исходников. Но пока не хватает мозгов.

Sasazuka
() автор топика

В общем, дело было не в бобине.
Emacs 26 (из репозитория kelleyk/emacs) тоже тормозит на моей машине.

Посмотрел, какие процессы жрут больше всего при C+Backspace и обнаружил, что это он:

/usr/lib/xorg/Xorg :0 -audit 0 -auth /var/lib/mdm/:0.Xauth -nolisten tcp vt8

Sasazuka
() автор топика
Ответ на: комментарий от Sasazuka

Похоже, что не находит заголовочных файлов для сборки(конкретно для иксов), попробуй поискать в сети уже собранные. Установка чего-либо из ppa это всегда риск, но судя по тому, что на этот ppa ссылается много источников, можно его попробовать.

Если есть желание разобраться, то смотри как собирают в этом ppa и собирай также руками, там все зависимости прописаны в src пакете.

kodx
()
Ответ на: комментарий от kodx

 А как дело в терминале?

А я так и не понял, как в терминале удалять, удерживая C+Backspace. Почему-то терминальный emacs считает эту команду сочетанием C+h. Почему он так считает, я понять не могу.

Сейчас буду делать, как ты тогда мне советовал: вопхну Debian на флешку и буду пробовать там. Если получится, то буду прощаться с Минтом. Иначе никогда этого не сделаю. Комфорт-с затягивает-с

Sasazuka
() автор топика
Последнее исправление: Sasazuka (всего исправлений: 1)
Ответ на: комментарий от kodx

 Если есть желание разобраться, то смотри как собирают в этом ppa и собирай также руками, там все зависимости прописаны в src пакете

Понял. Благодарю премного!

Sasazuka
() автор топика
Ответ на: комментарий от cab

 Как вариант можешь на флешку накатать обычную убунту и там попробовать.

Записал на флешку debian-live-9.5.0-amd64-xfce.iso
Установил emacs из репозитория и проделал те же операции.
Ничего не тормозит. Такие дела..

Благодарю вас всех за помощь, парни.
Сквозь тернии Линукса надёжнее продираться с надёжными товарищами :)

Sasazuka
() автор топика
Последнее исправление: Sasazuka (всего исправлений: 1)

Чтобы закрыть тему.

По вашему доброму совету вернул на место emacs из репозиториев Ubuntu, чтобы не рисковать и установил себе его версию без графического окружения. Баш, так баш.

И понял, что олень я таёжный.
В Bash удаление в эту ← сторону делается чер Alt - Backspace, а не С - Backspace, который там привязан к C - h.

И совершенно ничего не тормозит в этом случае. Всё нормально.

Благодарю вас всех ещё раз за помощь.

Sasazuka
() автор топика
Последнее исправление: Sasazuka (всего исправлений: 1)
Ответ на: комментарий от Sasazuka

Дополнение.
Вдруг пригодится кому-нибудь такому же, как я.
Причина тормозов обнаружена: это программа CopyQ, которую я устанавливал 100500 лет назад. ОНА И ТОРМОЗИЛА.
Она, собственно, всегда тормозила. Почему я забыл об этом...

Выяснилось это случайно. Мне было непонятно, почему копирование чего-либо из терминального emacs в другие программы происходит с такими затруднениями. То не получается скопировать что-либо с M-w, то не получается то же с Ctrl+Shift+c.

Словом, удалил CopyQ. Но не сессию не завершил, а продолжил работать. И начали появляться сообщения об ошибках CopyQ, когда в GUI-ном emacs-е пытался удалять чер С-Backspace.
Тут-то и дошло.

Sasazuka
() автор топика
Последнее исправление: Sasazuka (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.