2014-08-27 4 views
2

Я пытаюсь начать с emacs для создания проекта на основе node.js.Условия использования Javascript в emacs

Я не смог настроить свои emacs для этого. Он стал больше похожим на пробный и ошибочный вид черного ящика, приводящего к усечению. Вы можете мне помочь в их настройке:

Я установил плагин с M-x package-install

Мой Emacs файл выглядит следующим образом:

;; added for javascript ------- 
; Use dictionaries by default 
(setq-default ac-sources (add-to-list 'ac-sources 'ac-source-dictionary)) 
(global-auto-complete-mode t) 
; Start auto-completion after 2 characters of a word 
(setq ac-auto-start 2) 
; case sensitivity is important when finding matches 
(setq ac-ignore-case nil) 

(require 'yasnippet) 
;; now enable the yasnippet for snippets 
(yas-global-mode 1) 

;; set the snippets directory 
(setq yas-snippet-dirs 
     '("~/.emacs.d/plugins_old/yasnippet/yasmate/snippets" ;; the yasmate collection 
     "~/.emacs.d/plugins_old/yasnippet/snippets" ;; the snippet collection 
     "~/.emacs.d/elpa/yasnippet/snippets"   ;; the default collection 
     )) 

(ac-set-trigger-key "TAB") 
(ac-set-trigger-key "<tab>") 

;; (define-key yas-minor-mode-map (kbd "TAB") 'yas-expand) 
;; (define-key yas-minor-mode-map (kbd "<tab>") 'yas-expand) 
;; (setq yas-trigger-key "") 
;; (setq yas-next-field-key "") 
;; (setq yas-prev-field-key "") 


;; Let's have snippets in the auto-complete dropdown 
(add-to-list 'ac-sources 'ac-source-yasnippet) 

;; adding lint node 
;; (add-to-list 'load-path "~/.emacs.d/plugins_old/lintnode") 

;; finally followed this : http://www.emacswiki.org/emacs/FlymakeJavaScript to install jslint in emacs 
(require 'flymake-jslint) 
(add-hook 'js-mode-hook 'flymake-jslint-load) 

;; Make sure we can find the lintnode executable 
;; (setq lintnode-location "~/.emacs.d/plugins_old/lintnode") 
;; JSLint can be... opinionated 
;; (setq lintnode-jslint-excludes (list 'nomen 'undef 'plusplus 'onevar 'white)) 
;; Start the server when we first open a js file and start checking 
;; (add-hook 'js-mode-hook 
;;   (lambda() 
;;    (lintnode-hook))) 

;; added red cursor for wrong lint node errors 
(require 'flymake-cursor) 

;; fold the functions 
(add-hook 'js-mode-hook 
     (lambda() 
     ;; Scan the file for nested code blocks 
     (imenu-add-menubar-index) 
     ;; Activate the folding mode 
     (hs-minor-mode t))) 
;; Show-hide 
(global-set-key (kbd "") 'hs-show-block) 
(global-set-key (kbd "") 'hs-show-all) 
(global-set-key (kbd "") 'hs-hide-block) 
(global-set-key (kbd "") 'hs-hide-all) 

;; repl for javascript 
(require 'js-comint) 
;; Use node as our repl 
(setq inferior-js-program-command "node") 

(setq inferior-js-mode-hook 
     (lambda() 
     ;; We like nice colors 
     (ansi-color-for-comint-mode-on) 
     ;; Deal with some prompt nonsense 
     (add-to-list 'comint-preoutput-filter-functions 
        (lambda (output) 
         (replace-regexp-in-string ".*1G\.\.\..*5G" "..." 
        (replace-regexp-in-string ".*1G.*3G" "&gt;" output)))))) 
;; ----------------------------- 

Это та часть, которая я недавно добавил для настройки среды; вы можете увидеть много прокомментированного кода, который показывает, что я пробовал то или это отовсюду. Я следовал в основном: deadpansincerity, а затем попытался в последнее время с turnongtx

Что я в основном хочу, это yasnippet и автозаполнение с jslint для работы? Другие функции могут быть дополнениями, но я боюсь в течение двух дней только с ними.

Моя версия emacs - 24.3.1, где много вещей сломается.

Я заметил, что после 1 полного дня проб и ошибок, yasnippet начал работать, но после перезагрузки emacs он не работает. Это означает, что я мог бы сделать некоторые правильные вещи во время этого сеанса emacs с перезагрузкой файла .emacs. но снова я не знаю, что происходит где.

Когда я открываю любой файл js и пишу if и ударяю TAB, ничего не происходит.

Также, делая M-x yas-expand после записи if ничего не происходит. но сообщение обязательно придет, You can run the command "yas-expand" with TAB, но это тоже бывает иногда.

Я помню, что в какой-то момент, когда-либо делал что-то выше, показывал вчерашний день.

Хорошо, что мой jslint работает. Я установил его с помощью npm и добавил flymake. :) Также я могу использовать comint nodejs repl :)

Любая помощь будет оценена.

Мой полный файл Emacs здесь my emacs

+0

я обнаружил, что делает 'Mx Яс-перегружаемый all', после того, как это все работает .. я могу сделать это не произойдет само .. –

+0

ввод (Яс-перегружаемое все), кажется, работа ... но это то, что правильно. Я имею в виду в моем окне * Messages *, я вижу, что во время запуска, так как мой файл .emacs открыт по умолчанию, он загружает yas-snippet, загружает emacs-lisp-mode, но когда я перехожу к js-файл и его режим js-mode, он не загружает никаких фрагментов .. когда я делаю yas-reload-all, поскольку он загружает все, что он работает. –

ответ

1

Использование yas-global-modeпосле вы установите yas-snippet-dirs. В противном случае вы должны использовать yas-reload-all, что и произошло.

Следуйте пример here

Смежные вопросы