LINUX.ORG.RU

emacs и git

 ,


0

1

Добрый день, господа.

Я совсем недавно (буквально день) как перешел с gedit на emacs. Понятное дело, что через пару часов, оправившись от начального шока от количества функций, я прочитал минимальный мануал по emacs и решил начать работать, надеясь что привыкну.

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

В gedit этот очень удобный функционал реализован с помощью плагина «Git» Выглядит вот так http://i76.fastpic.ru/big/2015/1120/f4/1707240dd4aae22b104086c5e982c1f4.png

Хотелось бы именно такого же, но в emacs (пока нашел только вот такое https://github.com/syohex/emacs-git-gutter , и как-то оно мне не нравится).

★★★

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

А если полностью по ссылке пройти то работает. Я гугланул «расшарить картинку» и попал туда

disee ★★★
() автор топика

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

projectile + magit

no-such-file ★★★★★
()
Последнее исправление: no-such-file (всего исправлений: 2)

ставь из MELPA git-gutter

x4DA ★★★★★
()
Ответ на: комментарий от Stribog

Если вам не сложно, подскажите, пожалуйста, как заставить эту штуку работать?

Установил diff-hl с помощью пакетного встроенного пакетного манагера- результата ноль. Некоторый гугл подсказал отредактировать ~/.emacs , так что сейчас он выглядит вот так:

(global-set-key (kbd "<f5>") 'query-replace)
(global-diff-hl-mode)
(add-hook 'prog-mode-hook 'turn-on-diff-hl-mode)
(add-hook 'vc-dir-mode-hook 'turn-on-diff-hl-mode)
Результата тоже - 0.

Как сказано выше, емакс для менья чуть более чем полностью не знаком, и поэтому вполне возможно я не знаю каких-то очевидных вещей.

Заранее спасибо

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

Должно работать (после изменений конфига нужно перезапустить емакс):

(require 'diff-hl)
(global-diff-hl-mode)
После сохранения изменений файла строка будет подсвечиваться. Если не работает, открой буффер *Messages*, там будут сообщения обо ошибке. Или запусти емакс
emacs --debug-init

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

Может у вас M (meta) это Win а не Alt? Можно проверить сочетание клавиш через help: F1 c alt+shift+5

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

Все равно почему-то не подсвечивает. ~/.emacs выглядит теперь так:

(global-set-key (kbd "<f5>") 'query-replace)
(require 'diff-hl)
(global-diff-hl-mode)

Из буфера сообщений:

Loading 00debian-vars...done
Loading /etc/emacs/site-start.d/50autoconf.el (source)...done
Loading /etc/emacs/site-start.d/50dictionaries-common.el (source)...
Loading debian-ispell...
Loading /var/cache/dictionaries-common/emacsen-ispell-default.el (source)...done
Loading debian-ispell...done
Loading /var/cache/dictionaries-common/emacsen-ispell-dicts.el (source)...done
Loading /etc/emacs/site-start.d/50dictionaries-common.el (source)...done
Loading /etc/emacs/site-start.d/50python-docutils.el (source)...done
For information about GNU Emacs and the GNU system, type C-h C-a.
user-error: Beginning of history; no preceding item
Parsing archive file...done.
archive-get-descr: Entry is not a regular member of the archive [3 times]
Page has 128 lines (5 + 124)
End of buffer [5 times]
File `/mnt/nfs/LICENSE' exists; overwrite? (y or n) y
Saving file /mnt/nfs/LICENSE...
Cannot write backup file; backing up in ~/.emacs.d/%backup%~
Wrote /mnt/nfs/LICENSE
End of buffer
Auto-saving...
Auto-saving LICENSE: Opening output file: permission denied, /mnt/nfs/#LICENSE#

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

Перенеси конфиг в ~/.emacs.d/init.el и сделай так:

(require 'package)
(add-to-list 'package-archives '("melpa" . "http://melpa.milkbox.net/packages/") t)
(package-initialize)

(require 'diff-hl)
(global-diff-hl-mode)

(global-set-key (kbd "<f5>") 'query-replace)

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

Спасибо, заработало. Скажите, а есть способ переопределить цвета?

Так же мне была интересна динамическая подсветка (без сохранения файла), для меня заработал вот такой вариант:

(require 'package)
(add-to-list 'package-archives '("melpa" . "http://melpa.milkbox.net/packages/") t)
(package-initialize)

(require 'diff-hl)
(global-diff-hl-mode)
(diff-hl-flydiff-mode)

(global-set-key (kbd "<f5>") 'query-replace)

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

Спасибо больше.

Может быть вы подскажите православный способ делать коммит в гит? Сейчас у меня в одном из буферов открыт терминал (M-x term) и в нем, когда надо, я делаю git commit (-a).

Практически уверен, что есть сочетание клавиш, которое было определно еще до меня, что бы делать подобный экшен. Я просмотрел возможные кнопки в гуевом меню в Tools->Version Control->* но не нашел ничего подходящего.

Заранее спасибо

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

Про скроллинг никто не говорит. Хочется что бы было удобно и производительно.

Собственно поэтому есть emacs (помимо vi)

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

Я очень многого не понимаю, так как в стельку глуп, поэтому можно поинтересоваться, чем может быть удобна подсветка измененных строк?

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

Когда во время, например, багфикса есть множественный чендж по исходнику- удобнее фокусироваться на том что было поменяно. С совсем недавних пор (а именно с сегодняшнего дня) я открыл для себя закладки в емаксе (C-r b и C-r m). Вместе с подсветкой стало вдвойне удобно

disee ★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.