1. Избегайте пробелов в конце

Добавьте эти строки в свой файл .emacs, чтобы показать неприятные конечные пробелы в вашем коде:

(setq-default show-trailing-whitespace t)

Если вам не нравится стандартный (и агрессивный) красный цвет, введите:

M-x modify-face ENT trailing-whitespace ENT

2). Создавайте собственные фрагменты

С участием:

M-x list-packages

установите пакет yasnippet. Добавьте эти строки в ваш файл .emacs:

(require ‘yasnippet)
(yas-global-mode 1)

Откройте файл JavaScript и убедитесь, что вы используете режим js. Затем введите:

M-x yas/new-snippet

Вы должны отредактировать буфер, чтобы получить что-то вроде этого:

Будут вставлены все строки после области диезов (#). $1 означает, что курсор поместится сразу после того, как вы вызвали сниппет. Наберите C-c C-c и сохраните фрагмент в js-режиме. Теперь, когда вы вводите ss и нажимаете клавишу TAB, весь код будет вставлен в ваш файл.

Если вы программируете с помощью JSX, добавьте эту строку в свой файл .emacs, чтобы подключить фрагмент не только в режиме js, но и в режиме jsx:

(add-hook 'jsx-mode-hook 'js-mode)

3). Просмотр (и восстановление) старого кода

Иногда вы хотите увидеть какой-то старый код в файле, но не уверены, в каком git-хеше изменился файл. Установите пакет git-timemachine, затем откройте файл, отслеживаемый git, и введите:

M-x git-timemachine 

теперь с помощью клавиш p (предыдущий) и n (далее) вы можете просмотреть все отслеживаемые версии этого файла. Спасибо Peter Stiernström за этот потрясающий пакет.

Дополнительный совет

Я работаю в компании, где многие клиенты используют один и тот же фреймворк, и мне нужно настроить код для каждого клиента. Часто мне нужно сравнить один и тот же файл (id est, products_controller.rb) для разных клиентов, поэтому я закончил с четырьмя файлами с одинаковыми именами, открытыми одновременно, и я не знаю, какой файл соответствует каждому клиенту.

Установите пакет uniquify и добавьте его в свой файл .emacs:

;; Display dir if two files have the same name
(require 'uniquify)
(setq uniquify-buffer-name-style ‘reverse)
(setq uniquify-separator “|”)
(setq uniquify-after-kill-buffer-p t)
(setq uniquify-ignore-buffers-re “^\\*”)

Теперь, если два файла имеют одинаковое имя, имя родительского каталога будет добавлено в Emacs PowerLine. Сладкий!