Mengubah folder default di Emacs

107

Saya cukup baru mengenal Emacs dan saya telah mencoba mencari cara untuk mengubah folder default untuk C-x C-fsaat start-up. Misalnya ketika saya pertama kali memuat Emacs dan menekan C-x C-ffolder default-nya C:\emacs\emacs-21.3\bin, tetapi saya lebih suka itu desktop. Saya yakin ada beberapa cara untuk menyesuaikan .emacsfile untuk melakukan ini, tetapi saya masih tidak yakin apa itu.

Pembaruan: Ada tiga solusi untuk masalah yang saya temukan berfungsi, namun saya yakin solusi 3 hanya untuk Windows.

  • Solusi 1: Tambahkan (cd "C:/Users/Name/Desktop")ke .emacsfile

  • Solusi 2: Tambahkan (setq default-directory "C:/Documents and Settings/USER_NAME/Desktop/")ke .emacsfile

  • Solusi 3: Klik kanan jalan pintas Emacs, tekan properti dan ubah start in field ke direktori yang diinginkan.

Anton
sumber

Jawaban:

84

Anda tidak mengatakannya, tapi sepertinya Anda memulai Emacs dari pintasan Windows.

Direktori yang Anda lihat dengan cx cf adalah cwd, dalam istilah Emacs, default-directory(variabel).

Saat Anda menjalankan Emacs menggunakan pintasan MS Windows, default-directoryfolder (direktori) awalnya adalah yang ditentukan di bidang "Mulai" pada properti pintasan. Klik kanan pintasan, pilih Properties, dan ketik jalur ke desktop Anda di Start Inbidang.

Jika Anda menggunakan Emacs dari baris perintah, default-directorymulailah sebagai direktori tempat Anda memulai Emacs (cwd).

Pendekatan ini lebih baik daripada mengedit file .emacs Anda, karena ini akan memungkinkan Anda memiliki lebih dari satu pintasan dengan lebih dari satu direktori awal, dan ini memungkinkan Anda memiliki perilaku baris perintah normal Emacs jika Anda membutuhkannya.

CWD = direktori kerja saat ini = PWD = direktori kerja sekarang . Ini jauh lebih masuk akal pada baris perintah daripada di GUI.

Bart
sumber
Ya, saya menggunakan emacs di windows.
Anton
5
Ini juga berfungsi di MacOS. Saya menambahkan ini ke (setq default-directory (concat (getenv "HOME") "/"))
.emacs
Dan jika Anda ingin Emacs memulai di Dired dari direktori itu, selain meletakkannya di Start Inbidang, tambahkan di akhir Targetbidang, setelah satu atau beberapa spasi, tutupi di antara tanda kutip ganda ( "). Misalnya: "d:\path\to\the\folder".
Drew
49

Menurut saya baris yang perlu Anda tambahkan ke .emacs adalah

(setq default-directory "C:/Documents and Settings/USER NAME/Desktop/" )

Emacs akan dimulai di desktop Anda dengan cara itu, kecuali jika Anda membuka file. Ini biasanya akan dimulai di direktori yang sama dengan file di buffer Anda saat ini sebaliknya.

Michael
sumber
26

Anda dapat mengetik perintah 'cd' emacs. (Mx cd) untuk mengubah folder default sebagai folder nonaktif.

Chris Huang-Leaver
sumber
24

Saya telah menempatkan

(cd "c:/cvsroot/")

di .emacs saya dan berhasil

vava
sumber
6

Folder default sebenarnya sama dengan folder kerja saat ini untuk buffer, yaitu bisa berbeda untuk setiap file yang Anda kerjakan. Katakanlah bahwa file yang Anda kerjakan berada di dalamnya C:\dir_a, maka direktori kerja untuk buffer itu secara default adalah C:\dir_a. Anda dapat mengubah ini dengan M-x cddan mengetik di direktori apa pun yang Anda inginkan sebagai default (dan secara default maksud saya yang akan muncul saat Anda melakukannya C-x C-f).

Jika Anda memulai emacs tanpa membuka file, Anda akan mendapatkan *scratch*buffer terbuka. Jika Anda memulai emacs dari pintasan Windows, direktori kerja akan sama dengan yang ditentukan di properti pintasan. Jika Anda memulainya dari baris perintah, itu akan menjadi direktori tempat Anda memulainya. Anda masih dapat mengubah direktori default ini dengan M-x cd, juga dari *scratch*buffer.

Akhirnya, Anda dapat melakukan apa yang disarankan dan dilakukan oleh Vadim

(cd "c:/dir_a/")

di .emacsfile Anda , untuk menjadikan direktori tersebut default tidak peduli bagaimana Anda memulai emacs.

ehdr
sumber
4

Saat Anda menggunakan Windows, Anda dapat melakukannya dengan pintasan.

Buat pintasan ke C:\emacs\emacs-21.3\bin\runemacs.exe. Edit properti pintasan dan ubah nilainya Start In:menjadi apa pun yang Anda inginkan untuk direktori default Anda.

Dave Webb
sumber
4

Saya menggunakan emacs 22.2.1 di bawah Windows XP dan telah terbantu dengan jawaban di atas untuk mendapatkan respon di minibuffer Saya ingin perintah Cx Cf. Awalnya saya mendapatkan "Temukan file: C: \ Program Files \ emacs \ bin /" seperti Anton. Saya memiliki HOME yang disetel ke "C: \ Documents and settings \ USER NAME \ My Documents". Respon terhadap Cx Cf yang saya inginkan di minibuffer adalah "Temukan file: ~ /". Dengan menambahkan (setq default-directory "C: / Documents and Settings / USER NAME / My Documents") ke file .emacs saya, saya bisa mendapatkan respon "Temukan file: C: \ Documents and settings \ USER NAME \ My Documents / "yang fungsinya sama dengan" Temukan file: ~ / ". Namun, saya memperhatikan satu hal lagi. "Sesuaikan Emacs" di bawah "Opsi" memungkinkan saya untuk menghalangi layar pengaktifan. Sekarang ketika saya membuka emacs saya langsung menuju ke buffer awal. Ketika saya mengetik Cx Cf di buffer awal saya mendapatkan respons tepat yang saya inginkan.


sumber
1 untuk menyebutkan menghambat layar pengaktifan. Saya menemukan ini menjadi kunci pada sistem Windows 10 saya. Saya memposting jawaban saya pada pertanyaan terkait stackoverflow.com/a/38435697/823636
Rob_before_edits
1

Saya telah menambahkan pintasan saya (di Gnome, Linux) pramater yang merupakan nama file dummy kosong, dan saya menentukan direktori. Karena emacs saya default ke "home", saya cukup mengatakan:

/ Desktop / blank_file

dan itu membuka file bernama "blank_file"

Itu juga memindahkan direktori kerja saat ini untuk sesi emacs itu ke desktop.

Jika saya kebetulan memasukkan sesuatu ke dalam "blank_file" lalu menyimpannya, tentu saja, saya sudah menyimpannya. Yang mungkin mengganggu atau mungkin bagus, tergantung!

Greg Laden
sumber
1

Untuk mengubah direktori default ke DESKTOP di Dired dan shell, letakkan ini di ~ / .emacs Anda:

;; Ini berfungsi untuk Windows XP.
(setq default-directory (concat "C: \ Documents and Settings \ MY_ACCOUNT \ DESKTOP \"))

Adam Faryna
sumber
0

Di Windows 8, ini berfungsi untuk membuat pintasan di Desktop dan mengubah properti 'Mulai Di:' untuk pintasan.

Sekarang, saya menjalankan program emacs-23.3 \ bin \ addpm.exe seperti yang disarankan, dan layar Windows-8 (penemuan yang menghebohkan dari Microsoft) muncul tautan ikon ke Emacs. Tapi disana anda harus merubah lagi property 'Start In'. (Ini berbeda dengan yang ada di desktop). Cukup klik kanan, pilih di bilah bawah 'Buka lokasi file' (atau serupa, saya melakukannya dalam bahasa saya), dan Anda akan dibawa ke folder dengan pintasan baru, di mana Anda (harus) juga dapat mengubah properti 'Mulai Dalam:'.

Sedikit terlibat, tapi sebenarnya sangat mudah.

Tonibat
sumber
0

Karena hal yang paling menjengkelkan adalah membuat windows Emacs membuang Anda ke system32 ketika Anda hanya menggunakan pintasan, tetapi ingin setiap kasus lain berfungsi, cukup gunakan sedikit elisp ...

(ketika (string <"C: \ WINDOWS \ system32" default-directory) (setq default-directory "~ /"))

Jadi itu hanya akan default ke direktori home Anda ketika Anda berakhir di sistem. Satu-satunya kelemahan adalah jika Anda benar-benar ingin menjalankan emacs di system32 ...

Berikan BlahaErath
sumber