vim und Python

Probleme bei der Installation?
Antworten
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

Hallo,

ich habe mir für vim ein Filetypeplugin erstellt, das das Coden von Pythonscripts in vim sehr erleichtert.

Code: Alles auswählen

" ftplugin file for python

setlocal ai et sta sts=4 sw=4 tw=80 fo=croq

setlocal foldenable
imapclear
inoremap <buffer> :<CR> :<CR><Space><Space><Space><Space>
inoremap <buffer> a<TAB> assert<Space>
inoremap <buffer> d<TAB> def<Space>
inoremap <buffer> l<TAB> lambda<Space>
inoremap <buffer> c<TAB> class<Space>
inoremap <buffer> s<TAB> self
inoremap <buffer> w<TAB> while<Space>
inoremap <buffer> f<TAB> for<Space>
inoremap <buffer> i<TAB> if<Space>
inoremap <buffer> el<TAB> else
inoremap <buffer> ei<TAB> elif<Space>
inoremap <buffer> b<TAB> break
inoremap <buffer> ex<TAB> except<Space>
inoremap <buffer> t<TAB> try<Space>
inoremap <buffer> r<TAB> return<Space>
inoremap <buffer> m(<TAB> map(
inoremap <buffer> p<TAB> print<Space>
inoremap <buffer> fi(<TAB> filter(
inoremap <buffer> im<TAB> import<Space>
inoremap <buffer> fr<TAB> from<Space>
inoremap <buffer> r(<TAB> range(
inoremap <buffer> t(<TAB> type(
inoremap <buffer> ra<TAB> raise<Space>
inoremap <buffer> x(<TAB> xrange(
Unter Linux einfach im Verzeichnis ~/.vim/ ein Verzeichnis ftplugin erstellen und die obenstehenden Zeilen als python.vim dort speichern.
Jetzt am besten vim neu starten und ausprobieren. Nach Eingabe von c[TAB], im Einfügemodus, erscheint class im[TAB] wird in import umgewandelt. Wird :[RETURN] eingegeben wird die nächste Zeile um 4 Spaces eingerückt.


Gruß

Dookie
hans
User
Beiträge: 728
Registriert: Sonntag 22. September 2002, 08:32
Wohnort: Sauerland
Kontaktdaten:

Hi Dookie,

das sollte doch eigentlich auch mit dem gvim funktionieren oder? Nur wollen weder mein gevim noch vim delbst deine Datei schlucken. Kannst mal kuru sagen, Velche Version und welche OS du installiert hast? Vielleicht liegt ja da schon der Hase im Pfeffer.

SuSE 8.1
gvim-6.1-172
vim-6.1-172

Hans
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

Hi Hans,

ich hab unter Debian-Linux-3.x(Sarge) vim/gvim in Version 6.1 mit Pythonunterstützung. Ausgabe vom Hilfe-Menu->Version von gvim:

Code: Alles auswählen

:version
VIM - Vi IMproved 6.1 (2002 Mar 24, compiled May  4 2002 18:34:55)
Included patches: 1-48
Compiled by Wichert Akkerman <wichert@deephackmode.org>
Normal version with GTK GUI.  Features included (+) or not (-):
+autocmd -balloon_eval +browse +builtin_terms +byte_offset +cindent
+clientserver +clipboard +cmdline_compl +cmdline_hist +cmdline_info +comments
+cryptv +cscope +dialog_con_gui +diff +digraphs -ebcdic -emacs_tags +eval
+ex_extra +extra_search -farsi +file_in_path +find_in_path +folding -footer
+fork() -gettext -hangul_input +iconv +insert_expand +jumplist +keymap +langmap
+libcall +linebreak +lispindent +listcmds +localmap +menu +mksession
+modify_fname +mouse +mouseshape -mouse_dec +mouse_gpm -mouse_jsbterm
-mouse_netterm +mouse_xterm +multi_byte +multi_lang -osfiletype +path_extra
-perl +postscript +printer +python +quickfix +rightleft -ruby +scrollbind
+signs +smartindent -sniff +statusline -sun_workshop +syntax +tag_binary
+tag_old_static -tag_any_white -tcl +terminfo +termresponse +textobjects +title
+toolbar +user_commands +vertsplit +virtualedit +visual +visualextra +viminfo
+vreplace +wildignore +wildmenu +windows +writebackup +X11 +xfontset +xim
+xterm_clipboard -xterm_save
   system vimrc file: "$VIM/vimrc"
     user vimrc file: "$HOME/.vimrc"
      user exrc file: "$HOME/.exrc"
  system gvimrc file: "$VIM/gvimrc"
    user gvimrc file: "$HOME/.gvimrc"
    system menu file: "$VIMRUNTIME/menu.vim"
  fall-back for $VIM: "/usr/share/vim"
Compilation: gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -I/usr/include/g
tk-1.2 -I/usr/include/glib-1.2 -I/usr/lib/glib/include -I/usr/X11R6/include -I/u
sr/local/include  -g -O2 -DFEAT_LANGMAP -DFEAT_KEYMAP -DFEAT_SIGNS -DFEAT_RIGHTL
EFT  -I/usr/X11R6/include   -I/usr/include/python2.1
Linking: gcc  -L/usr/X11R6/lib  -L/usr/local/lib -o vim   -L/usr/lib -L/usr/X11R
6/lib -lgtk -lgdk -rdynamic -lgmodule -lglib -ldl -lXi -lXext -lXt -lncurses  -l
gpm -ldl   -L/usr/lib/python2.1/config -lpython2.1 -ldl -lutil -lm -Xlinker -exp
ort-dynamic
Bekommst Du eine Fehlermeldung, wenn Du ein Pythonscript in den gvim lädst oder aus dem Syntaxmenu python auswählst?
[TAB] und [RETURN] steht natürlich für return. Auch solltest Du die "Shortcuts" recht flott eintippen, solange vim/gvim noch auf weitere Tastendrücke wartet, bleibt der Cursor scheinbar hängen, wenn er dann hinter den gedrückten Buchstaben springt ists zu spät.


Gruß

Dookie
hans
User
Beiträge: 728
Registriert: Sonntag 22. September 2002, 08:32
Wohnort: Sauerland
Kontaktdaten:

Hi Dookie

ich kann keine gravierende Unterschiede feststellen, außer das mein gvim mit Python 2.2 compiliert wurde

Code: Alles auswählen

:version
VIM - Vi IMproved 6.1 (2002 Mar 24, compiled Sep 10 2002 18:34:21)
Inclusive der Korrekturen: 1, 3-15, 17-18, 20-22, 24-34, 36-72, 74-75, 77-87, 89-92, 94-99, 101-118, 120-146, 150
Übersetzt von root@D63
Große Version mit GTK GUI. Ein- (+) oder ausschließlich (-) der Eigenschaften:
+autocmd -balloon_eval +browse ++builtin_terms +byte_offset +cindent +clientserver +clipboard +cmdline_compl
+cmdline_hist +cmdline_info +comments +cryptv +cscope +dialog_con_gui +diff +digraphs -ebcdic +emacs_tags +eval +ex_extra
+extra_search +farsi +file_in_path +find_in_path +folding -footer +fork() +gettext -hangul_input +iconv +insert_expand
+jumplist +keymap +langmap +libcall +linebreak +lispindent +listcmds +localmap +menu +mksession +modify_fname +mouse
+mouseshape +mouse_dec +mouse_gpm -mouse_jsbterm +mouse_netterm +mouse_xterm +multi_byte +multi_lang -osfiletype
+path_extra +perl +postscript +printer +python +quickfix +rightleft -ruby +scrollbind +signs +smartindent -sniff
+statusline -sun_workshop +syntax +tag_binary +tag_old_static -tag_any_white -tcl +terminfo +termresponse +textobjects
+title +toolbar +user_commands +vertsplit +virtualedit +visual +visualextra +viminfo +vreplace +wildignore +wildmenu
+windows +writebackup +X11 +xfontset +xim +xterm_clipboard -xterm_save
        System-vimrc-Datei: "/etc/vimrc"
        System-vimrc-Datei: "$HOME/.vimrc"
         Nutzer-exrc-Datei: "$HOME/.exrc"
       System-gvimrc-Datei: "/etc/gvimrc"
       Nutzer-gvimrc-Datei: "$HOME/.gvimrc"
         System-Menü-Datei: "$VIMRUNTIME/menu.vim"
   Voreinstellung für $VIM: "/etc"
       und für $VIMRUNTIME: "/usr/share/vim/current"
Übersetzt: gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -I/usr/include/gtk-1.2 -I/usr/include/glib-1.2 -I/usr/lib/gl
ib/include -I/usr/X11R6/include   -O2 -march=i586 -mcpu=i686 -fmessage-length=0 -Wall -pipe  -I/usr/X11R6/include  -D_REEN
TRANT -D_GNU_SOURCE -fno-strict-aliasing -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64  -I/usr/lib/perl5/5.8.0/i586-linux-thr
ead-multi/CORE  -I/usr/include/python2.2
Linken: gcc  -L/usr/X11R6/lib  -rdynamic -Wl,-rpath,/usr/lib/perl5/5.8.0/i586-linux-thread-multi/CORE   -L/usr/local/lib -
o gvim   -L/usr/lib -L/usr/X11R6/lib -lgtk -lgdk -rdynamic -lgmodule -lglib -ldl -lXi -lXext -lX11 -lm -lSM -lICE -lXpm -l
Xt -lX11 -lXdmcp -lSM -lICE -lncurses  -lgpm -ldl  -rdynamic -Wl,-rpath,/usr/lib/perl5/5.8.0/i586-linux-thread-multi/CORE
 /usr/lib/perl5/5.8.0/i586-linux-thread-multi/auto/DynaLoader/DynaLoader.a -L/usr/lib/perl5/5.8.0/i586-linux-thread-multi/
CORE -lperl -lnsl -ldl -lm -lpthread -lcrypt -lutil -L/usr/lib/python2.2/config -lpython2.2 -ldl -lpthread -lutil -lm -Xli
nker -export-dynamic
ich bekomme überhaupt keine Fehlermeldung und eine spürbare Verzögerung habe ich auch nicht bei der Eingabe. Habe ich die Datei überhaupt geladen?

Hans
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

hmm brutzelt da suse wieder seinen eigenen Kram?
Hier mal ein Auszug aus dem Helpfile, Abschnitt "tuning vim" - "using Filetypes"

Code: Alles auswählen

							*your-runtime-dir*
1. Create your own runtime directory.  On Unix this usually is "~/.vim".  In
   this directory create the "ftplugin" directory: >

	mkdir ~/.vim
	mkdir ~/.vim/ftplugin
<
   When you are not on Unix, check the value of the 'runtimepath' option to
   see where Vim will look for the "ftplugin" directory: >

	set runtimepath

<  You would normally use the first directory name (before the first comma).
   You might want to prepend a directory name to the 'runtimepath' option in
   your |vimrc| file if you don't like the default value.

2. Create the file "~/.vim/ftplugin/c.vim", with the contents: >

	setlocal softtabstop=4
	noremap <buffer> <LocalLeader>c o/**************<CR><CR>/<Esc>
wird hier für C beschrieben, aber ist für Python praktisch das selbe.

Versuch mal direkt im Commandomodus

Code: Alles auswählen

:imap c<TAB> class<Space>
einzugeben und dann tipp mal im Einfügemodus c[TAB]


Gruß

Dookie
hans
User
Beiträge: 728
Registriert: Sonntag 22. September 2002, 08:32
Wohnort: Sauerland
Kontaktdaten:

Ich geb's auf, in der Zeit kann ich ja tausend Erweiterungen mit der Hand tippen. Das funktioniert bei mir nicht, weder in vim noch in gvim. Habe eigentlich ein ganz "normales" Standardsystem. Die Verzeichnissruktur entspricht auch der in der Doku angegebenen.

Wenn ich die Befehle per Hand eingebe, dann funktioniert es.

Hans
piddon
Gründer
Beiträge: 410
Registriert: Dienstag 30. Juli 2002, 18:03
Wohnort: Oestrich-Winkel
Kontaktdaten:

VI(M)? Ist das nicht der Editor, für den man erst 3Wochen üben muss, damit man alle kombinationsmöglichkeiten von Tasten lernt, damit einem nicht ausversehen ein 300Seitiger Quelltext gelöscht wird, oder so?
:D :D

Irgentwie hasse ich das ding. Aber ist eiegtnlich der einzige Editor, der auf jedem *NIX-System zu finden ist. Man MUSS sich also damit auseinandersetzen ;(
irc: #python.de @ irc.freenode.net | [url=http://pythonwiki.pocoo.org]python-wiki[/url] | [url=http://www.pythonwiki.de/PythonDeForum/Faq]python-forum FAQ[/url]
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

Hi piddon,

vim ist erstmal wirklich ein Monster, wenn mann zum erstenmal damit confrontiert wird, aber es gibt auch viel Hilfe zu vim. Für die ersten Schritte am besten vimtutor in einem Shellfenster eingeben und das Tutorial durcharbeiten. Bei gvim einfach auf das Fragezeichen in der Werkzeugleiste anklicken und da mal schmökern und im unteren Fensterabschnitt die Sachen ausprobieren.


Gruß

Dookie
hans
User
Beiträge: 728
Registriert: Sonntag 22. September 2002, 08:32
Wohnort: Sauerland
Kontaktdaten:

Hi piddon,

vi, ex, ed, sed, awk ist so ziemlich das genialste an Editoren / Tools was ich kenne (Sorry dass ich kein enacs nenne, aber dafür bin ich wohl zu doof :roll: ) Arbeite ja nun schon seit fast 20 Jahren mit UNIX. Damit kann man viel mehr machen als mit notepad.exe, glaub es mir.

Ich verwende den vi in einigen Bereichen als Standard Editor, auch unter Windowssystemen. Unter Windows gibt's z.B. Lemmy

Übrigens: Wenn du einem versierten Windows User über die Schulter schaust, dann wirst du ganz schnell feststellen, daß diese wesentlich schneller mit Shortcuts als mit der Maus sind. Ich wünsche mir eigentlich eine Maus für die Füße, damit die Hände frei bleiben.

Hans
hans
User
Beiträge: 728
Registriert: Sonntag 22. September 2002, 08:32
Wohnort: Sauerland
Kontaktdaten:

Hi,

ich bin unter die Rotkäppchen gegangen, aber unter RedHat 8.0 geht's auch nicht. Wollte ich nur mal anmerken.

Hans
kasimon
User
Beiträge: 18
Registriert: Freitag 21. März 2003, 20:54
Wohnort: Kiel

Bei mir klappts (Debian 3.0r1, vim und gvim). Nur damit es auch mal positive Postings gibt!

Ach ja, und ich mag es auch!

kasimon
Antworten