Saya akan mengadopsi Emacs menjadi satu-satunya editor yang saya gunakan dalam semua yang saya tulis termasuk dokumen LaTeX. Saya berasal dari editor WYSIWYG yang melayani tujuan itu dengan cukup baik, yaitu TexStudio atau TXS. Untuk transisi dari TXS ke Emacs, saya masih kehilangan cara TXS berurusan dengan mengeksekusi pencarian kueri regexp besar dan menggantinya dengan menyoroti kecocokan dan pembatasan pencarian hanya untuk .tex
file yang terkait dengan proyek tersebut . Saya sangat merindukan itu di Emacs sekarang. Lihat tangkapan layar TXS di bawah ini:
Permintaan TeXStudio dalam Proyek MultiTile LaTeX
Saya ingin menekankan poin-poin dalam alur kerja yang ingin dicapai di Emacs:
- Pencarian dan Penggantian Kueri RegExp hanya dalam
.tex
file terkait proyek . - Sorot pertandingan
- Gambaran umum dari hasil yang disorot secara bersamaan dalam tata letak yang dapat dikelola (mirip dengan tampilan log
Magit
pada Emacs ketika Anda menekanl
diikuti oleh yang lainl
atau hanya sepertiC-x d
dalam mode Dired - Bagaimana mengetahui berapa banyak penggantian atau inspeksi yang dilakukan dengan atau tersisa dan cara untuk melanjutkan kueri jika rusak oleh keystroke canggung yang menghentikan kueri
- Cara bersih dari kueri berantakan ini dengan menutup dan menyimpan semua file terkait dan kembali ke status sebelum menjalankan kueri ini
Saya membaca posting ini tetapi niat saya adalah untuk menjadi lebih seperti CW
itu siapa pun dapat berbagi alur kerja terbaiknya untuk menyelesaikan pekerjaan umum ini. Pendekatan saya saat ini adalah sebagai berikut:
Alur Kerja Pertama
- Mode Dired
% g
akan menandai semua file yang berisi regexp itu. Cons: ini akan mencakup bahkan file yang tidak terkait dengan proyek termasuk file non .tex. C-x 3
membuka buffer baru sambil mengawasi buffer pertama sebagai gambaran umum orientasi saya tentang file apa yang ditandai yang harus saya tanyakan dalam buffer baru secara individual- Menjalankan kueri dengan
C-c q
. Ini memiliki saklar yang sangat bagus seperti!
mengganti semua tanpa meminta dan menyoroti pertandingan dalam file yang dibuka. Tapi ini berarti saya harus menjalankan kueri yang sama setiap waktu dan untuk setiap file yang ditandai. - Setelah melakukan semua file yang ditandai saya tekan
C-x s !
untuk menyimpan semua dalam satu keystroke. Fiuh!
Alur Kerja Kedua - lebih disukai
- Menandai semua
.tex
file menggunakan% m
Dired-mode oleh regexp untuk menandai hanya.tex
file jadi pada dasarnya berjalan\.tex
akan membawa saya ke sana. C-x 3
sama seperti di atas untuk menyimpan satu buffer untuk tinjauan umum dan yang lainnya untuk query- Menjalankan
Q
dalam Dired yang merupakan permintaan ganti regexp dalam file yang ditandai saja. AtauA
hanya permintaan pencarian regexp. Permintaan lengkap akan dieksekusi dan menu bantuan?
disediakan dengan murah hati C-x s !
simpan dan tutup semua kekacauan. Kalau tidak, saya harus menutup file yang dibuka satu per satu yang membosankan. Saya harap ada cara untuk menutup hanya mereka yang kita ganggu.
Bagaimana cara saya memperkirakan permintaan pencarian / penggantian regex TXS di multifile?
Catatan
- Emacs 24.4 di Windows 7
sumber
Jawaban:
Jika saya mengerti dengan benar, Anda ingin mencari pola teks di proyek Anda, maka Anda mungkin ingin menggunakan Proyektil bersama dengan Helm.
Berikut ini adalah demo dari
helm-projectile-grep
:Anda dapat menyimpan ke dalam buffer terpisah untuk merujuk di kemudian hari menggunakan
Save results in grep buffer
action` (Anda TABsecara default beralih ke action buffer menggunakan ).Jika Anda belum pernah mendengar tentang Helm, Anda dapat membaca tutorial Helm saya . Kunjungi tutorial Helm Projectile saya untuk demo dan panduan lebih lanjut tentang Helm Projectile.
Alternatif, Anda juga dapat menggunakan
rgrep
, yang merupakan bawaan:Search for:
prompt, yaitu "test"Search for "test" in file:
, yaitu*.tex
.rgrep
).Sebuah
rgrep
demo:Sehubungan dengan kriteria Anda:
Baik Helm dan
rgrep
mendukung fitur ini.Sama seperti di atas.
Sama seperti di atas.
Jika Anda ingin mengganti kecocokan, Anda dapat menggunakan wgrep untuk melakukan penggantian
*Grep*
buffer. Setelah Anda selesai dan sinkronkan kembali*Grep*
buffer, semuanya akan diganti sesuai dengan teks yang Anda ganti.Anda "melanjutkan" dengan menjalankan kueri lagi jika Anda tidak sengaja menghentikannya. Tetapi menggunakan Helm, Anda memiliki
helm-resume
perintah yang melanjutkan Anda kembali ke operasi berjalan sebelumnya jika Anda secara tidak sengaja membatalkannya.Sebenarnya, Anda tidak perlu membunuh buffer apa pun jika Anda menggunakan alat seperti helm-mini . Mengelola ribuan buffer terbuka sangat mudah: Anda dapat mempersempit buffer keinginan Anda dengan pola teks pendek. Anda dapat membunuh sekaligus jika Anda mau.
Berikut ini adalah demo dari
helm-mini
:Lihat penjelasan detail di halaman Helm Github, di bagian "Penggunaan Lanjutan" .
sumber
projectile
,helm
danhelm-projectile
jelas, apa lagi? Plus ada dua pkg MELPAhelm-pojectile
danhelm projectile-all
rekomendasi di sini?Installation
bagian dalam panduan Proyektor Helm dan Helm saya.rgrep
untuk mengunjungi kejadian pertandingan (maju atau mundur) di buffer atas dan bawah?Jika saya mengerti apa yang Anda inginkan, RefTeX '
reftex-isearch-minor-mode
harus menjadi apa yang Anda cari. Dari uraiannya di manual:Seperti yang dilaporkan oleh T. Verron, ini bekerja dengan regexps juga.
Untuk mengaktifkan mode minor ini di semua * TeX buffer, tambahkan salah satu baris berikut ke file init Anda
sumber
M-r
buffer pencarian akan beralih ke pencarian regexp, seperti halnya untuk pencarian regulerisearch
.C-M-s
) juga berfungsi.;-)
Jika Anda tidak sadar, Anda dapat membuka Dired hanya pada set file tertentu (terletak di direktori mana saja, di mana saja). TKI, Anda bisa menggunakan Dired sebagai titik masuk Anda untuk semua file proyek. Fitur Dired yang biasa berfungsi dalam konteks ini: beroperasi pada file yang ditandai, dll.
Jika Anda menggunakan perpustakaan Bookmark + maka Anda dapat memiliki bookmark Dired yang Anda gunakan untuk memberi Anda "tampilan" yang berbeda dari set file yang berbeda, tanda mereka, dll.
(Emacs Wiki sedang dalam perbaikan saat ini, dan untuk beberapa hari lagi, sehingga tautan itu sementara tidak dapat diakses.)
sumber
C-x n n
? dapatkah Anda memperkaya jawaban Anda dengan lebih detail. Terima kasih.C-x n n
- fitur Dired hanya sedikit dikenal.C-h f dired
memberi tahu Anda bahwa Anda dapat memberikan argumen nama (dan absolut) nama file (dan direktori) sebagai ganti nama direktori. Itulah kuncinya. Library Dired + memudahkan penggunaan ini secara interaktif. (Tetapi sekali lagi, wiki sedang down untuk sementara, sehingga tautannya juga tidak tersedia saat ini.)