Apa cara yang benar untuk membuat git mengabaikan file sementara yang diproduksi oleh vim di semua direktori (baik secara global di seluruh sistem atau secara lokal untuk satu proyek)?
git
vim
ignore
temporary-files
jrdioko
sumber
sumber
*.sw?
memecahkan standar.swp
tetapi juga ekstensi file swap alternatif seperti.swo
..swf
file. Saya akan sangat menyarankan melakukan hal itu, terutama jika Anda sedang membangun aplikasi Flash..
harus mencegahnya..tmp.swp
,.tmp.swo
, ...,.tmp.swa
), vim menciptakan.tmp.svz
. Saya kurang sabar untuk melihat apa yang terjadi setelahnya.tmp.saa
- mungkin.tmp.rzz
? UPDATE: Mencari di sumber (src/memline.c
, fungsifindswapname()
), menyerah setelah.saa
dengan kesalahan: "E326: Terlalu banyak file swap ditemukan".Jawaban:
Vim file sementara diakhiri dengan ~ sehingga Anda dapat menambahkan file
.gitignore
ke baris tersebutVim juga membuat file swap yang memiliki ekstensi swp dan swo. untuk menghapus yang menggunakan baris:
Ini akan mengabaikan semua file sementara vim dalam satu proyek
Jika Anda ingin melakukannya secara global, Anda dapat membuat file .gitignore di rumah Anda (Anda dapat memberikannya nama atau lokasi lain), dan gunakan perintah berikut:
Maka Anda hanya perlu menambahkan file yang ingin Anda abaikan ke file itu
sumber
.*.sw*
di saya.gitignore
untuk menyembunyikan semuanya..*.sw?
lebih akurat. (Meskipun saya telah melihat orang menggunakan beberapa varian*.sw*
untuk mencurigai saya yang kehilangan sesuatu yang sangat jelas ...).*.s[a-w][a-z]
akan mengabaikan.svg
file.Atau Anda dapat mengkonfigurasi vim untuk menyimpan swapfiles ke lokasi terpisah, misalnya dengan menambahkan baris yang mirip dengan yang berikut ke
.vimrc
file Anda :Lihat tip vim ini untuk info lebih lanjut.
sumber
$TMPDIR
untuk mendapatkan tempdir yang sebenarnya :)$TEMP
artinyaset undodir=$TEMP//
, karena saya juga menyimpan file undo yang persisten.Ini adalah sesuatu yang seharusnya hanya dilakukan berdasarkan per-pengguna, bukan per-repositori. Jika Joe menggunakan emacs, ia akan ingin agar file cadangan emacs diabaikan, tetapi Betty (yang menggunakan vi) ingin file cadangan vi diabaikan (dalam banyak kasus, mereka mirip, tetapi ada sekitar 24.893 editor umum yang ada dan itu cukup konyol untuk mencoba mengabaikan semua berbagai ekstensi cadangan.)
Dengan kata lain, jangan memasukkan apa pun ke dalam
.gitignore
atau kecore.excludes
dalam$GIT_DIR/config
. Masukkan info$HOME/.gitconfig
sebagai gantinya (seperti yang disarankan nunopolonia dengan--global
.) Perhatikan bahwa "global" berarti per-pengguna, bukan per-sistem.Jika Anda ingin konfigurasi lintas sistem untuk semua pengguna (yang tidak Anda miliki), Anda akan memerlukan mekanisme yang berbeda. (Mungkin dengan pengaturan templat sebelum inisialisasi repositori.)
sumber
Saya juga merekomendasikan untuk berpikir untuk mengabaikan file seperti:
karena Anda mungkin memiliki file yang diakhiri dengan
.swp
sumber
Berhenti vim sebelum "git commit".
untuk
vim
menggunakan folder lain untuk file cadangan, (/tmp
misalnya):untuk membuat vim berhenti menggunakan folder saat ini untuk file .swp:
Penggunaan
-=, +=
akan secara umum baik, karena vim memiliki standar lain untuk bdir, dir , kami tidak ingin menghapus semua. Periksa bantuan vim untuk informasi lebih lanjut tentang bdir, dir :sumber
Berikut adalah kode VIM aktual yang menghasilkan ekstensi file swap:
Ini akan menghasilkan file swap format:
Yang cukup banyak apa yang termasuk dalam file gitignore github sendiri untuk VIM .
Seperti orang lain telah mencatat dengan benar, .gitignore ini juga akan mengabaikan file gambar .svg dan file .swf adobe flash.
sumber
Saya menemukan ini akan membuat git mengabaikan file sementara yang dibuat oleh vim:
Itu juga bisa dilihat di sini .
sumber
.swf
file - file sial yang terus muncul setiap kali Anda membuat aplikasi flash..svg
yang mungkin menjadi masalah.*.un~
karena Anda memiliki*~
Tentu,
cukup buat ".gitignore" di direktori home proyek Anda dan harus mengandung
itu dia
dalam satu perintah
sumber
echo *.swp >> .gitignore
lebih baik untuk menghindari penggantian .gitignore sebelumnya.echo '*.swp' >> .gitignore
>
karakter itu secara tidak sengaja . Saya pernah melakukan itu padapasswd
file kemudian keluar :-)http://vimdoc.sourceforge.net/htmldoc/recover.html
http://www.vim.org/scripts/script.php?script_id=1075
sumber
Dalam kasus saya file temporer sudah dilakukan oleh tindakan sebelumnya, jadi memodifikasi .gitignore tidak akan mempengaruhi file yang dikomit ..., Anda harus
git rm files_to_be_ignored --cache
terlebih dahulu, kemudian komit, kemudian DILAKUKAN.sumber
Ini berfungsi pada Mac seperti dicatat oleh Alex Moore-Niemi:
Pastikan untuk menggunakan
TMPDIR
dan tidakTEMPDIR
.sumber
Jika Anda menggunakan kontrol sumber. vim temp file tidak berguna.
Jadi, Anda mungkin ingin mengonfigurasi vim untuk tidak membuatnya.
Cukup edit ~ / .vimrc Anda dan tambahkan baris ini:
sumber
screen
(ataudtach
jika dia tidak ingin semua fitur layar). Pemadaman listrik ditangani oleh UPS. Pencadangan dilakukan oleh {perangkat lunak favorit Anda untuk mencadangkan semua file penting}. Saya menggunakan swap file untuk mendapatkan pemberitahuan ketika saya mencoba untuk mengedit file yang sudah diedit, file cadangan karena memiliki tempat N + 1 dengan cadangan tidak membahayakan dan membatalkan file karena persistent membatalkan berguna. Hanya undo file yang sedikit penting bagi saya.