Spyder: Menyediakan key binding Vim dan Emacs untuk editor

Dibuat pada 17 Feb 2015  ·  55Komentar  ·  Sumber: spyder-ide/spyder

_Dari rcbruno. [email protected] pada 2011-05-27T12: 35: 31Z_

Mungkinkah menggunakan vim sebagai editor teks di Spyder?

_Masalah asli: http://code.google.com/p/spyderlib/issues/detail?id=669_

11–20 stars Help wanted Editor Enhancement

Komentar yang paling membantu

Kami masih perlu menyediakan keybindings Emacs, jadi biarkan terbuka.

Semua 55 komentar

_Dari Francois ... @ gmail.com pada 2011-05-27T12: 31: 48Z_

Saya pikir jawabannya sayangnya tidak ...
Tetapi karena saya sendiri adalah penggemar vim moda editing dan key binding, saya mendukung Anda dalam hal ini. Saya bisa menjadi fitur yang luar biasa ... vim benar-benar batu dan ide mata-mata hanya luar biasa: pernikahan yang bahagia ?!

Beberapa tautan berguna di bawah ini

Kate sebagai plugin vim yang sudah sangat baik: http://kate-editor.org/kate-vi-mode/ Emacs serta beberapa vim-mode :) http://www.emacswiki.org/emacs/VimMode http: // www.emacswiki.org/emacs/Vimpulse Netbeans sebagai plugin jVi yang luar biasa: http://jvi.sourceforge.net/ Bolehkah saya meminta Pida berhasil memasukkan vim dalam IDE pygtk yang sangat bagus: http://pida.co. uk / Ada juga vico, Kommodo edit, Gedit yang memiliki vim-mode:
vicoapp.com http://www.activestate.com/komodo-edit https://launchpad.net/vigedit/

_Dari pierre.raybaut pada 2011-05-28T03: 33: 37Z_

Jawaban singkatnya adalah ya di Linux (cara paling sederhana adalah dengan menggunakan QX11EmbedContainer), tetapi tidak di Windows. Spyder sebagai IDE lintas platform, kami tidak akan melakukan sesuatu di satu OS dan tidak di OS lain, terutama fitur seperti ini yang akan membutuhkan banyak pekerjaan.

Contoh-contoh yang diberikan oleh François menarik. Tapi AFAIK, belum ada yang berhasil menanamkan vim di aplikasi lain di Windows.

Status: WontFix
Label: -Jenis-Jenis-Cacat-Peningkatan

_Dari rcbruno. [email protected] pada 2011-05-28T07: 37: 47Z_

Semua aplikasi lain yang disebutkan François terlihat bagus, tetapi tampaknya tidak ada yang bisa menggantikan spyder (tidak berorientasi komputasi ilmiah).

Sayang sekali spyder tertahan karena keterbatasan platform berpemilik.

_Dari ccordoba12 pada 2011-05-28T07: 53: 46Z_

Bukan hanya itu. Jika kami akan menanamkan vim maka orang lain akan segera meminta untuk menanamkan emacs atau kate atau editor favorit orang lain. Itu akan menjadi beban nyata bagi tim pengembang.

Satu-satunya hal yang mungkin dilakukan adalah menyediakan binding kunci mirip vim, seperti yang dilakukan vigedit.

Hanya 2 sen saya,
Carlos

_Dari rcbruno. [email protected] pada 2011-05-28T08: 08: 07Z_

Key binding yang mirip Vi juga bagus.

_Dari ccordoba12 pada 2011-05-28T08: 43: 44Z_

Baiklah kalau begitu. Saya akan membiarkan masalah ini terbuka sebagai permintaan peningkatan, jika ada orang lain yang ingin mengembangkannya.

Ringkasan: Sediakan key binding seperti vim untuk editor
Status: Dibutuhkan Kontributor
Label: Cat-Editor

_Dari pierre.raybaut pada 2012-03-18T14: 05: 51Z_

Label: -Type-Enhancement Type-Enh

_Dari pierre.raybaut pada 2012-03-18T14: 17: 01Z_

Status: Dibutuhkan Bantuan

_Dari tbekolay pada 2012-06-22T07: 33: 09Z_

Ada editor, seperti Sublime Text 2, yang meniru Vi dengan cukup baik melalui "mode vintage". Saya adalah pengguna emacs, jadi saya ingin sekali memasang keybindings emacs di Spyder, dan akan masuk akal jika mekanisme tersebut cukup umum untuk juga melakukan key binding seperti Vi.

Saya tertarik dalam menerapkan perubahan seperti itu (meskipun saya kemungkinan akan memulai dengan keybindings emacs), tetapi ini akan menjadi perubahan kode pertama saya di Spyder jadi mungkin perlu beberapa saat!

_Dari ccordoba12 pada 2012-06-22T08: 27: 09Z_

Jangan khawatir, ini bisa memakan waktu. Spyder memiliki dukungan pintasan yang sangat bagus, yang juga dapat dikonfigurasi. Mungkin Anda dapat mulai melihat di https://code.google.com/p/spyderlib/source/browse/spyderlib/plugins/shortcuts.py Jika Anda membutuhkan bantuan lebih lanjut, beri tahu kami

Ringkasan: Sediakan key binding Vim dan Emacs untuk editor

_Dari ccordoba12 pada 2013-02-13T09: 41: 50Z_

Label: MS-v2.3

_From peishiy ... @ gmail.com pada 2013-03-06T03: 49: 39Z_

fitur yang sangat penting !!

_Dari ccordoba12 pada 2013-03-06T08: 43: 13Z_

Ya, setuju sekali. Ini akan memungkinkan orang untuk dengan mudah pindah ke Spyder tanpa meninggalkan memori otot mereka :)

_Dari pierre.raybaut pada 2013-05-11T05: 32: 29Z_

Label: -MS-v2.3 MS-v2.4

_Dari david.jo ... @ gmail.com pada 2013-05-14T07: 52: 26Z_

Jika seseorang berencana untuk menggunakan ini, Anda harus melihat plugin vim ini: https://github.com/ivanov/vim-ipython Ini memungkinkan komunikasi dua arah antara vim dan kernel ipython, dan bekerja dengan sangat baik. Ini juga bekerja di gvim.

Kurangnya editor yang benar-benar hebat adalah satu-satunya hal yang membuat saya tidak dapat menggunakan Spyder secara teratur.

Beberapa pengembang yang bekerja dengan saya telah menyatakan minatnya untuk mempelajari python sebagai bahasa pemodelan. Untuk membuatnya lebih mudah bagi mereka, saya membuat instalasi Python 2.7 pada pemasangan NFS, dengan banyak alat ilmiah. Saya bahkan mengalami kesulitan untuk mencari tahu cara menginstal Spyder. Butuh beberapa pekerjaan, karena tidak ada di repo Centos 6, dan LAN kami tidak terhubung ke internet. Untuk itu diperlukan pembuatan QT dan PyQt yang terpisah. Saya pikir UI seperti Matlab akan menurunkan kurva pembelajaran sedikit.

"IDE" utama tempat saya bekerja adalah vim, meskipun saya pribadi menggunakan Eclipse untuk banyak pengkodean saya. Saya pikir adil untuk mengatakan bahwa untuk sebagian besar pengembang Linux, editor adalah komponen terpenting dari lingkungan pengembangan. Jadi menyematkan vim di Spyder pasti akan meningkatkan tingkat pengadopsiannya.

Saya dapat mengambil ini pada diri saya sendiri, jika tidak ada yang mengalahkan saya untuk itu, karena Spyder tampak seperti proyek yang layak untuk diinvestasikan.

_Dari ccordoba12 pada 2013-05-14T09: 30: 40Z_

Kami dapat menerima tambalan tetapi kami tidak tertarik untuk menanamkan vim atau emacs di Spyder saat ini.

Kami lebih suka memiliki editor sederhana dengan fitur-fitur modern (seperti pelengkapan otomatis, masuk ke definisi dan penyorotan kesalahan) yang dapat digunakan sejak hari pertama, daripada yang kuat tetapi sulit untuk dikonfigurasi (yang telah menjadi pengalaman saya dengan emacs, saya ' ve tidak menggunakan vim).

Namun kami sangat tertarik untuk menyediakan pengikatan kunci untuk keduanya sehingga orang dapat dengan mudah beralih ke Spyder.

_Dari david.jo ... @ gmail.com pada 2013-05-14T09: 57: 33Z_

Emacs memang membutuhkan usaha keras hanya untuk membuat konfigurasi dev dasar, IMHO, itulah mengapa saya tidak menggunakannya. Vim jauh lebih mudah untuk mengkonfigurasi dan menambahkan fungsionalitas. Saya lebih suka tombol emacs, tetapi tidak sebanding dengan waktu yang terbuang untuk saya.

Saya merasa pintasan keyboard di Spyder sulit untuk dikonfigurasi, dan pintasan khusus saya sering tidak berfungsi. Saya berasumsi ini karena konflik, meskipun saya tidak dapat menemukannya. Alangkah baiknya jika ada prompt peringatan untuk ini. Ini juga akan jauh lebih mudah jika Anda dapat mengetikkan pintasan, daripada menggunakan menu tarik-turun.

Apa yang hebat adalah dapat memuat binding dari file. Apakah saat ini mungkin?

Saya bukan vim "ninja jalan pintas", tapi menyenangkan memiliki fitur seperti pengeditan blok.

_Dari ccordoba12 pada 2013-05-14T10: 58: 54Z_

Dukungan pintasan kami membutuhkan sedikit cinta tetapi kami berencana untuk memperbaikinya di 2.4.

Maaf, tidak mungkin memuat binding dari file, tapi itu ide yang bagus.

Yang Anda maksud dengan pemilihan blok adalah pemilihan kolom? Itu akan sangat menarik untuk diterapkan. Saya pikir ada masalah terbuka untuk hal seperti itu.

_Dari david.jo ... @ gmail.com pada 2013-05-14T14: 29: 01Z_

Iya. Pemilihan kolom. Tentu saja, pengikatan kunci dan / atau tombol yang mengalihkan editor ke mode kolom, seperti di Eclipse CDT, akan lebih baik daripada cara vim.

Editor Spyder benar-benar bisa jauh lebih baik daripada vim untuk penggunaan yang dimaksudkan, sementara memungkinkan memori otot pengguna yang konsisten untuk tindakan umum.

_Dari david.jo ... @ gmail.com pada 2013-05-15T06: 54: 19Z_

Sejauh menambahkan ikatan kunci vim, mungkinkah memiliki kotak popup perintah kecil untuk perintah vim, seperti Vrapper di Eclipse? Atau apakah itu perubahan yang terlalu besar pada antarmuka?

Sayangnya, agar benar-benar dapat digunakan, menambahkan binding kunci vim akan melibatkan lebih dari sekadar memetakan ulang kombinasi tombol.

_Dari gary.pa ... @ gmail.com pada 2015-01-09T10: 26: 13Z_

Satu-satunya hal yang menghalangi saya menggunakan Spyder adalah saya sudah memiliki memori otot untuk keybindings Emacs. Tidak perlu meniru semuanya, hanya segelintir kasus umum, seperti karakter berikutnya, baris akhir, dll. Saya akan melihat sumbernya untuk melihat apakah saya pikir saya bisa melakukannya.

_From paul.rou ... @ gmail.com pada 2015-01-26T08: 07: 48Z_

@ -carlos #4 ccordoba12

Satu-satunya hal yang mungkin dilakukan adalah menyediakan pengikatan kunci seperti vim,
seperti yang dilakukan vigedit.

R-Studio IDE menyediakan pengikatan kunci vim. Mereka masih jauh dari selesai tetapi ini adalah awal yang baik untuk menavigasi halaman secara efektif dan menghapus, menyalin-tempel baris.

Apakah seseorang sudah mulai menerapkan ikatan kunci vim?

_Dari ccordoba12 pada

Tidak ada yang bekerja untuk menambahkan pengikatan kunci Vim untuk Spyder. Sayangnya itu adalah proyek yang sulit dan rumit karena kita harus meniru mode Perintah / Edit Vim.

Namun, pengikatan kunci Emacs akan tiba di 2.4

Saya benar-benar ingin pengikatan VIM di spyder (Pycharm memilikinya, tetapi terlalu berat untuk desktop pekerjaan saya). Sebagai pengembang Python, bagaimana saya bisa membantu?
Saya BUKAN orang Qt, tetapi saya membahas tentang https://code.google.com/p/spyderlib/source/browse/spyderlib/plugins/shortcuts.py , saya mungkin memerlukan beberapa dokumen / bantuan mungkin .. .

Masalah dengan pengikatan VIM bukanlah pintasan itu sendiri, ini adalah pengelolaan mode tampilan dan edit. Plugin editor itu sendiri harus diubah (dan bagian kode ini sudah cukup rumit). Sayangnya Anda harus tahu Qt untuk melakukan perubahan ini.

Mungkin ada cara lain untuk melakukannya, tetapi saya tidak tahu apakah itu akan bekerja dengan baik dalam praktiknya: idenya adalah memiliki widget khusus untuk memasukkan perintah vim. Mode edit akan menjadi saat editor difokuskan, dan mode perintah adalah saat widget difokuskan. Menekan Esc saat dalam mode edit akan memberikan fokus ke widget perintah, dan perintah seperti i atau a atau o dalam widget perintah akan memberikan fokus ke editor.
Apakah itu akan berhasil, dan apakah itu akan berhasil dengan baik?

@Nodd , inilah yang saya maksud dengan menyatakan dalam beberapa percakapan sebelumnya ... Saya pikir pendekatan Anda akan bekerja dengan cukup baik, dan seharusnya tidak terlalu sulit untuk diterapkan, tetapi ya, @ fdev31 , Anda memerlukan cukup pengetahuan Qt ...

Saya mencobanya, ini relatif mudah dilakukan tetapi saya memiliki satu masalah besar: editor tidak lagi memiliki fokus sehingga kursor tidak ditampilkan.

@ fdev31 Apa perintah vim terpenting yang harus diterapkan? Saya tahu cukup vim untuk mengedit file konfigurasi ...

Oke, Anda dapat "secara manual" menggambar kursor saat berada di widget (Buat saja QCursor baru ()?), Berdasarkan posisi terakhir kursor yang diketahui dan memperbaruinya di belakang tirai?

Sebenarnya vim lebih baik dengan kursor blok (untuk perintah seperti i dan a misalnya) jadi menyoroti karakter mungkin yang terbaik.

Saya memulai plugin untuk vim keybinds, ini dalam tahap yang sangat awal tetapi dimungkinkan untuk menguji prinsip dengan dockwidget QLineEdit.
Hanya beberapa kunci yang (dengan buruk) diterapkan:

h
j
k
l
w
i
a
:w
:q
:wq

Plugin memiliki struktur baru untuk digunakan dengan # 2362. Untuk menginstalnya salin (atau tautkan) direktori p_vim ke $HOME/.spyder/userplugins .
Sunting: dan saya tidak melakukan apa pun untuk menampilkan kursor.

@Nodd , itu benar-benar luar biasa !!

Saya hanya lebih suka menawarkan dukungan Vim sebagai bagian dari Spyder itu sendiri, mengingat bahwa sekarang kami cukup dekat untuk menawarkan keybindings Emacs juga ;-)

Ini dapat diintegrasikan dalam spyder bersama pylint dan lainnya bila kita mau, itu hanya copy-paste direktori. Saya bisa membuat PR jika lebih berguna / lengkap.

OK keren!

Saya menambahkan beberapa kunci lagi:

SPACE
ZZ
:n
:e
:e .

Saya akan menggunakan kembali sebagian besar fungsi yang ditambahkan oleh @ blink1073 untuk keybindings emacs setelah PR-nya digabungkan.

Ada port Qt vim: https://bitbucket.org/equalsraf/vim-qt

Alangkah baiknya jika antarmuka itu dapat diabstraksi dan digunakan di spyder - lihat: https://bitbucket.org/equalsraf/vim-qt/issues/121/implement-as-a-kpart

@ naught101 , tidak ada kemungkinan kita akan mengambil rute itu. Kami akan menyediakan satu set keybindings Vim sederhana di 3.0, dan itu saja :-)

Mengintegrasikan VIM key-binding ke spyder akan menjadi fitur yang sangat menarik, terutama bagi orang seperti saya yang bermigrasi dari Linux ke Windows untuk Python pemrograman (mulai menggunakan Anaconda baru-baru ini untuk mengelola paket python saya, dan khususnya untuk menginstal numpy ...).
Adakah peningkatan?
Terima kasih.

Tidak ada kemajuan di pihak saya: kecewa:
Repo dengan kode lama saya adalah https://github.com/Nodd/spyderplugins.vim , tetapi menggunakan tata letak plugin lama sehingga tidak akan berfungsi dengan spyder terbaru.
Saya dapat mencoba membuat PR dengan prototipe ini, tetapi saya baru saja memperbarui Qt menjadi 5.6 dan itu merusak spyder. Juga tata letak plugin akan segera berubah lagi.

Maaf atas jawaban terlambat _very_, berikut adalah daftar perintah yang paling sering saya gunakan dan saya akan merasa frustrasi jika tidak: smiley_cat:

%
{
}
gg
GG
$
0
: $
: ^
: r [!]
Y y
p
m
"
Shift + V.
Ctrl + V
A (CAPITAl) dan I (capital) dalam mode * + V.
: s
&
q / binding "makro"
gU
gu
ga
[angka] hh
f
F
*
/
: hls

  • binding "lipat"

@ fdev31 Saya tidak dapat menemukan perintah apa yang harus dilakukan, seperti :$ dan :^ ?
Plugin seharusnya dapat digunakan sekarang, terlepas dari beberapa bug dan sangat kurangnya perintah yang diimplementasikan.

@Nodd adakah yang bisa saya lakukan untuk membantu? Saya belum pernah berkontribusi ke Spyder sebelumnya, tetapi saya tahu python dan BENAR-BENAR ingin melihat vim mengikat di Spyder.

@ codestar12 , silakan mulai dengan membuka halaman di wiki spyder-vim:

https://github.com/spyder-ide/spyder-vim/wiki

dengan daftar yang disediakan oleh @ fdev31 di atas, dan penjelasan singkat tentang apa yang dilakukan semua perintah tersebut. Sayangnya tidak satupun dari kami adalah pengguna Vim, jadi kami membutuhkan bantuan Anda di sini.

Kemudian saya akan menetapkan beberapa sumber daya untuk terus menambahkan fungsionalitas ke plugin itu setiap minggu, sampai kita dapat mencakup semua (atau setidaknya sebagian besar) dari daftar itu :-)

Saya dapat membantu lebih banyak, saya hanya melewatkan jawabannya: P
"$" dalam mode standar pergi ke akhir baris ....

Le mar. 8 nov. 2016 pada 04:02, Carlos Cordoba [email protected] a
écrit:

@ codestar12 https://github.com/codestar12 , silakan mulai dengan membuka a
halaman di wiki spyder-vim:

https://github.com/spyder-ide/spyder-vim/wiki

dengan daftar yang disediakan oleh @ fdev31 https://github.com/fdev31 di atas, dan
deskripsi singkat tentang apa yang dilakukan semua perintah itu. Sayangnya tidak satupun dari kita
adalah pengguna Vim, jadi kami membutuhkan bantuan Anda di sini.

Kemudian saya akan menetapkan beberapa sumber daya untuk terus menambahkan fungsionalitas ke sana
plugin setiap minggu, sampai kami dapat mencakup semua (atau setidaknya sebagian besar) itu
daftar :-)

-
Anda menerima ini karena Anda disebutkan.
Balas email ini secara langsung, lihat di GitHub
https://github.com/spyder-ide/spyder/issues/669#issuecomment -259032358,
atau nonaktifkan utasnya
https://github.com/notifications/unsubscribe-auth/AAOkHmKK0FREYLRMX389AYJO9ExjxqLJks5q7-ZPgaJpZM4DhP8O
.

@ fdev31 , tolong bantu kami juga! Segera setelah Anda membuat halaman wiki itu, saya akan meminta beberapa junior kami untuk mulai bekerja meningkatkan dukungan Vim kami :-)

@ fdev31 apa

@ ccordoba12 Saya membuat wiki dan sudah mulai menambahkan deskripsi perintah. Saya tidak begitu yakin bagaimana Anda ingin saya memformat wiki. (Saya tidak yakin saya suka bagaimana penurunan harga saya mengaturnya). beri tahu saya jika saya harus melakukan perubahan, jika tidak, saya akan segera menyelesaikan perintah terakhir yang diminta

Wiki tidak terlalu berguna untuk melacak perintah yang diinginkan. Ini statis, Anda tidak dapat berkomentar atau melacak evolusi atau mengajukan pertanyaan.
akan lebih baik untuk melacak perintah yang diimplementasikan di wiki, dan perintah yang diinginkan dalam sebuah masalah (lihat # 1).
Misalnya saya melihat bahwa daftar wiki yy dan p , yang keduanya diimplementasikan.
Sunting: Saya memperbarui halaman wiki dengan perintah yang diimplementasikan

Akan sangat berguna untuk dapat memuat keybindings dari file .vimrc yang ada juga. Mungkin bahkan hanya parsing sederhana dari vimrc untuk mengekstrak ikatan umum (yang saya yakini adalah apa yang ideavim lakukan untuk platform intellij: https://github.com/JetBrains/ideavim)

@ sho-87 dapatkah Anda mengirimkan saran Anda melalui https://github.com/spyder-ide/spyder-vim

@ ccordoba12 Apakah ini masih perlu dibuka di sini, atau apakah kita sudah dilindungi oleh apa yang ada di spyder-vim repo?

Kami masih perlu menyediakan keybindings Emacs, jadi biarkan terbuka.

Ah, mengerti; Terima kasih. Saya menambahkan fixes #669 ke # 2670 jadi ini akan ditutup ketika / jika digabungkan.

opsional, klik kanan buka file dan klik menu "buka di editor lain" untuk membuka editor vim .... ok?

@ ccordoba12 Ada kemajuan dalam menyediakan binding kunci lainnya? Terima kasih

Tidak ada kemajuan, maaf.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat