Tidak dapat menjalankan editor

153

Saya tidak sering harus mengubah beberapa pesan komit, tetapi itu terjadi sekali atau dua kali dan saya tidak pernah ingat melihatnya. Saya harap ada orang lain. Ketika saya git rebase -i HEAD~7, daftar yang diharapkan terbuka di vi persis seperti yang diharapkan. Saya mengubah picknilai ke edittempat yang sesuai dan kemudian :wq.

Tidak dapat menjalankan editor

The core.editorPengaturan di global saya .gitconfigadalah vi(saya juga sudah berubah ke vimdalam sebuah langkah liar putus asa). Saya mencoba menggunakan mate, tetapi itu bahkan tidak membuka daftar awal dengan benar sehingga saya mengubahnya kembali.

Saya menggunakan v1.7.3 dan akan menerima saran.

Rob Wilkerson
sumber
1
Sumbernya termasuk git_editor "$TODO" || die_abort "Could not execute editor". Karena Anda mengatakan editor benar-benar muncul, itu berarti mengembalikan kode keluar yang bukan nol. Bisakah Anda meniru perilaku yang menggunakannya secara normal pada command-line?
Cascabel
Yang aneh bagi saya adalah bahwa vi diluncurkan untuk menampilkan daftar commit, tetapi ketika saya menyimpan dan menutup semuanya mati. Lihat jawaban saya untuk perubahan yang saya buat agar ajaib mulai bekerja.
Rob Wilkerson
OS apa yang Anda jalankan? Menjalankan OSX Lion I mengalami masalah yang sama dan jawaban Anda memperbaikinya. +1
Adam Lewis
@ AdamLewis - Saya tidak yakin sekarang, tapi mungkin 10,6 atau 0,7 mengingat tanggal. OSX, pasti.
Rob Wilkerson
5
Saya pikir saya menciptakan masalah ini ketika saya menggunakan homebrew untuk menginstal vim baru. Pengaturan git config --global core.editor "/usr/local/bin/vim"memperbaikinya untuk saya.
mmell

Jawaban:

185

Kemarin hanyalah salah satu dari hari-hari itu. Pada seekor lark, saya memutuskan untuk menetapkan path lengkap ke vi (eg /usr/bin/vi) daripada hanya executable. Sekarang semuanya berfungsi. Saya harus mengakui bahwa saya tidak mengerti karena viini dapat dieksekusi dengan sempurna sendiri ( $EDITORvariabel env saya juga diatur ke vi), tapi itu berfungsi dan karma teknis saya belum begitu bagus belakangan ini jadi mungkin saya tidak seharusnya mempertanyakan para dewa akan ...

Rob Wilkerson
sumber
6
Di mana Anda mengatur path lengkap ke / usr / bin / vi?
Amala
131
Aku memasukkannya ke dalam file konfigurasi global saya: git config --global core.editor "/usr/bin/vim".
Rob Wilkerson
Saya memiliki masalah yang sama. Untuk alasan yang tidak dapat saya pahami, pengaturan core.editor saya disetel ke / user / bin / vim daripada / usr / bin / vim
jonnybot
Punya masalah yang sama tetapi dengan Sublime Text - path lengkap akhirnya menyelesaikan hal-hal. Yang aneh karena saya yakin semuanya bekerja dengan baik sebelumnya ...: - \
Hal
git config --global color.editor "/usr/local/bin/vim"tidak bekerja untuk saya :), terima kasih
przbadu
159

Perintah berikut

git config --global core.editor /usr/bin/vim

memperbaikinya.

[sunting]

Sekarang saya melihat bahwa seseorang sudah mempostingnya di komentar. Semoga masih bermanfaat untuk beberapa orang buta seperti saya.

Langusten Gustel
sumber
6
Untuk Windows misalnya (tidak ada tanda kutip tunggal, adalah masalah saya): git config --global core.editor "'C: \ Program Files (x86) \ Vim \ vim74 \ vim.exe'"
chrjs
1
Ya ini ^. Untuk memperjelas hal ini, gunakan tanda kutip ganda di sekitar tanda kutip tunggal di sekitar jalan menuju yang dapat dieksekusi.
Yakub
Bekerja seperti pesona!
R11G
7

Berbeda dengan jawaban lain di sini sejauh ini, bagi saya menggunakan path absolut ke vi, dan pengaturan core.editorkonfigurasi git , tidak cukup untuk menyelesaikan masalah. (Itu sudah ada di tempat.)

Dalam situasi saya, masalahnya diselesaikan dengan menambahkan -fbendera ke perintah vi:

git config --global core.editor '/usr/bin/vi -f'

Setelah -fopsi ini di tempat, saya bisa menggunakan git rebase -i, dan ketika saya menyimpan-dan-keluar dari daftar komit, rebase berlangsung sebagaimana mestinya daripada memberikan kesalahan "tidak dapat menjalankan editor".

The Halaman vim pria mengatakan berkenaan dengan pilihan -f,

Untuk versi GUI, Vim tidak akan bercabang dan lepas dari shell tempat dimulainya. ... Opsi ini harus digunakan ketika Vim dieksekusi oleh program yang akan menunggu sesi edit selesai (mis. Surat).

Yah saya tidak menggunakan versi GUI, yang saya tahu. Saya menjalankan gitdi baris perintah bash di jendela terminal pada masOS Sierra 10.12.6. Tapi karena git rebase -imenunggu sesi edit selesai, saya kira itu sebabnya -fopsi diperlukan di sini. Mungkin vim (tanpa -f) mencoba untuk memotong / melepaskan shell untuk beberapa alasan saya belum bisa mengetahuinya.

Lars
sumber
6

Saya punya masalah ini, dan itu disebabkan oleh beberapa bagian dari plugin vcscommand untuk vim. Memulai vim dengan perintah-perintah ini menghasilkan kode keluar 1 ("kesalahan"):

  • vi
  • vim

Tetapi ini memberi saya kode keluar 0 ("sukses"):

  • /usr/bin/vi
  • /usr/bin/vim
  • vi -u NONE
  • vim -u NONE

Saya dapat melacaknya kembali ke plugin tertentu dengan menonaktifkan ~/.vimrcdan file ~/.vimdengan mengubah nama mereka dan berjalan vi -c q ; echo $?untuk menjalankan vim dengan cepat dan mencetak kode keluar.

Annika Backstrom
sumber
1
Saya punya masalah yang sama dan mengatur path lengkap ke vim bekerja: git config --global core.editor / usr / bin / vim
James
Pelakunya lain yang mungkin tampaknya menjadi plugin patogen pada Mac OS X .
sschuberth
3

Bagi saya, itu masalah dengan .vimrc saya. Mengganti nama sementara file itu memperbaikinya. Diikuti dengan men-debug .vimrc saya. Ini sangat mirip dengan pengalaman ignu.

Jembatan Tanah Liat
sumber
Ya, saya punya! Silent colorscheme macvim di .vimrc saya, untuk mengatur colorscheme itu jika ada, dan untuk tidak menggangguku jika tidak (jadi perintah baris vim akan bekerja). Di sisi lain, itu mengubah status keluar ke 1 ketika gagal, bahkan dengan diam !.
Max
3

Jika Anda ingin untuk alasan apa pun menggunakan luhur Anda dapat melakukan sesuatu seperti berikut ini di file konfigurasi global Anda:

 git config --global core.editor "/Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl"
alphapilgrim
sumber
1

Butuh beberapa saat untuk melacak masalah saya ke salah satu plugin saya.

(khususnya, itu https://github.com/ervandew/supertab )

Saya kira itulah downside untuk memperbarui semua plugin saya secara otomatis.

Jadi saran terbaik, nonaktifkan setengah vimrc dan plugin Anda. Jika itu tidak membantu, masalahnya dengan separuh lainnya.

ignu
sumber
Saya memiliki masalah yang sama dengan supertab.
harithski
Bagaimana Anda melacaknya ke supertab? Itu akan menjadi informasi yang sangat membantu.
Justin Force
1

Pilihan lain adalah menggunakan nanoeditor.

$ whereis nano
$ git config --global core.editor path/to/nano

Memperbaikinya.

techkuz
sumber
1

Saya mencoba menekan komitmen seperti yang ditunjukkan di sini https://www.youtube.com/watch?v=V5KrD7CmO4o . Editor git saya (notepad ++) dibuka pada langkah rebasing. Tetapi, pada langkah amend commit, saya melihat masalah "Tidak dapat menjalankan editor". Itu mungkin terjadi karena pengaturan git editor salah dan juga karena saya menginstal notepad ++ di lokasi yang tidak standar pada sistem windows saya. Yaitu, 'git config core.editor' memberi sayanotepad++ -multilnst- nosession .

Untuk memperbaiki masalah ini, berikan path lengkap seperti ini:

git config --global core.editor "'C:\CustomFolder\NPP\notepad++.exe' -multiInst -notabbar -nosession -noPlugin"

Rujuk: https://www.youtube.com/watch?v=YLxdkcT6H4g

MasterJoe2
sumber
0

Apakah Anda yakin bahwa / usr / bin / vim ada di 1.7.3? Saya memiliki masalah yang sama karena saya menginstal plugin cadangan yang hanya didukung pada 1.7.3 dan untuk beberapa alasan / usr / bin / vim tiba-tiba diturunkan menjadi 1.7.2, mungkin karena pembaruan utama XCode. ..

Flov
sumber
0

Saya memiliki masalah ini juga ketika saya sudah memiliki vim terbuka untuk rebase di terminal lain. Saya telah memulai rebase, terganggu, dan ketika saya kembali saya mencoba lagi dari awal di terminal lain, tidak menyadari saya berada di tengah rebase yang sama di tempat lain. Hanya menyelesaikan sesi rebase vim di terminal lain bekerja dengan baik.

mmrobin
sumber
0

Anehnya, hanya mencoba lagi berhasil bagi saya.

Variabel core.editor dan $ EDITOR saya tidak disetel.

Eben Geer
sumber
0

Bagi saya, menggunakan windows: tutup terminal saat ini, dan buka yang lain (win + R, ketik 'cmd', lalu 'enter'), lalu tiba-tiba berfungsi.

miao.wang
sumber
0

Solusi VS Code:

git config --global core.editor "/Applications/Visual\ Studio\ Code.app/Contents/MacOS/Electron"

Eugene Balashov
sumber