2015-07-15 1 views
8

Я новичок в Emacs. Я установил снаряда.Почему проект Emacs C-c p не определен?

Когда я C-c p, он говорит:

C-c p is undefined 

Хотите знать, что это не так?

Следующий мой файл ~/.emacs.

(require 'package) 

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

(defvar required-packages 
    '(
    projectile 
    ) "a list of packages to ensure are installed at launch.") 

(require 'cl) 

        ; method to check if all packages are installed 
(defun packages-installed-p() 
    (loop for p in required-packages 
    when (not (package-installed-p p)) do (return nil) 
    finally (return t))) 

        ; if not all packages are installed, check one by one and install the missing ones. 
(unless (packages-installed-p) 
        ; check for new packages (package versions) 
    (message "%s" "Emacs is now refreshing its package database...") 
    (package-refresh-contents) 
    (message "%s" " done.") 
        ; install the missing packages 
    (dolist (p required-packages) 
    (when (not (package-installed-p p)) 
     (package-install p)))) 

(require 'projectile) 
(projectile-global-mode) 

Редактировать

Мой .projectile файл

-/venv 
-*.pyc 
-*.pyc~ 
-.git 
-.gitignore 
-.DS_Store 

Edit 2

C-h v выход для projectile-keymap-prefix, как показано ниже:

projectile-keymap-prefix is a variable defined in `projectile.el'. 
Its value is "^Cp" 

Documentation: 
Projectile keymap prefix. 

You can customize this variable 

Редактировать 3

Я использую OS X 10.10.4. Я запускаю emacs из командной строки $emacs. Я установил Emacs, используя следующие команды:

brew install emacs --with-cocoa 

И в первый раз (когда я запускаю emacs). Если делать M-x, я не получаю project-switch-project, скорее получаю project-switch-to-buffer. После переключения буфера я могу переключить проект.

+0

У вас есть '.projectile' файл где-нибудь? Если вы не в рамках проекта, я понимаю, что это может не сработать. – GJStein

+0

Я должен также указать, что ваш код '.init' работал для меня с точки зрения установки' projectile' и получения команд для работы. Возможно, попробуйте перезапустить emacs. – GJStein

+0

Привет, У меня есть .projectile файл в каталоге – Elisa

ответ

0

Префикс префикса карты Projectile по умолчанию определяется переменной projectile-keymap-prefix. Вы можете использовать C-h v, чтобы увидеть значение этой переменной. Если не установлен или не ^Cp, вы можете использовать этот код, чтобы установить его в C-c p

(setq projectile-keymap-prefix (kbd "C-c p")) 

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

+0

Привет, Tinker, Кажется, что переменная '^ Cp' уже установлена ​​для' projectile-keymap-prefix'. Я добавил edit2 в мой вопрос выше. – Elisa

+0

О, это странно. Дайте-ка подумать. Не могли бы вы сначала выполнить команду 'projectile-find-file', чтобы увидеть, работает ли она. Затем используйте 'C-h f', чтобы увидеть ключи привязки. Как мой компьютер, это 'C-c p f'. Поэтому я могу использовать это для выполнения команды пуска. Все работает нормально, но у вас еще есть проблема, тогда я понятия не имею об этом. –

+0

'projectile-find-file' работает должным образом. 'C-h f' также работает. Но 'C-c p f' не работает. – Elisa

1

Вам необходимо вручную активировать режим снарядом в файле ~/.emacs:

(projectile-mode 1)