Hallo, ich weiß nicht ob ich hier im richtigen Forum bin, aber da viele FPGA Entwickler XEmacs nutzen, kann mir bestimmt jemand helfen. Wenn ich in einen VHDL-file den cursor z.B. vor einen Signalnamen setze und C-s C-w drücke, wird das Signal markiert, allerdings nur bis zum ersten Unterstrich. Ich möchte aber gern den gesamten Namen mit einem Mal markieren. Ich weiß auch, dass das geht, aber leider nicht, wo ich das in XEmacs einstelle. Gruß Philip
Warum willst Du Dich einschränken? C-s C-w C-w und es ist bis zum nächsten Underscore markiert (braucht den Bruchteil einer Sekunde, und kann beliebig oft aneinander gereiht werden...)
Weil ich es so gewohnt bin :-) Und weil ich in der Regel Ports oder Signale suche und die bei mir oft mehrere _ enthalten. Das mit dem mehrmals C-w finde ich lästig...
Das ist auch nicht ganz das was ich suche. Auf einem anderen Rechner habe ich das auch mit C-w gemacht, nur dass das Markieren dann bis zum ersten Leerzeichen oder ( etc. ging. Muss man also irgendwo konfigurieren können. Aber konfigurieren von XEmacs ist halt sone Sache :-)
Habe es eben im GNU-EMACS probiert, aber im XEmacs sollte es hoffentlich ähnlich gehen (wenn nicht, dann nimm halt den GNU-EMACS :-) In der Startup-Datei (bei mir .emacs im Homeverzeichnis) einfügen:
1 | (defun meine-ergaenzungen-zu-vhdl-mode() |
2 | "Ergaenzungen zu VHDL-mode 06.07.2012 kw" |
3 | (modify-syntax-entry ?_ "w") |
4 | ) |
5 | |
6 | (add-hook 'vhdl-mode-hook 'meine-ergaenzungen-zu-vhdl-mode) |
Damit gehört (wenn man im VHDL-Modus ist) ein Unterstrich zu den Zeichen, die ein Wort ausmachen. Natürlich bei einem dann neu gestarteten EMACS, für einen bereits offenen Buffer müsste man das modify-syntax-entry nach einem M-x von Hand eingeben (M-x, dann modify-syntax-entry, dann Return, dann _, dann w)
Tja, EMACS iss schon 'n klasse Betriebssystem. Schade dass kein gescheiter Editor dabei ist :o)
Trotz meines schlechten Gedächtnisses kannte ich den schon. Trotzdem danke für den wertvollen Beitrag.
Klaus Wachtler schrieb: > Natürlich bei einem dann neu gestarteten EMACS, für einen bereits > offenen Buffer müsste man das modify-syntax-entry nach einem M-x von > Hand eingeben (M-x, dann modify-syntax-entry, dann Return, dann _, dann > w) Ich wollte es noch korrigieren, aber dank des wichtigen Interrupts durch berndl ging es nicht mehr. Es soll heißen: Natürlich bei einem dann neu gestarteten EMACS, für einen bereits offenen Buffer müsste man das modify-syntax-entry nach einem M-x von Hand eingeben (M-x, dann modify-syntax-entry, dann Return, dann _, dann Return, dann w)
@Klaus Danke, funtioniert! Weißt Du zufällig auch noch woran es liegen kann, wenn man die Speedbar nicht öffnen kann? Meldung - "WARNING: An error occured while opening speedbar"
Leider nicht... Aber ich hätt da noch ne andere Frage :-) Bein "Auto-Vervollständige" einer IF-Abfrage möchte ich die Bedingung gerne automatisch in einer Klammer haben. Per default macht XEmacs das nicht so...
Ich habemit VHDL nix am Hut, deshalb weiß ich nicht mal, wie da ein if aussieht :-) In C/C++ habe ich mir das so gebastelt:
1 | (defun kw-ergaenzungen-zu-c-c++-mode() |
2 | "Ergaenzungen zu c-mode..." |
3 | ( setq abbrev-mode t ) |
4 | ... |
5 | ) |
6 | (add-hook 'c-mode-common-hook 'kw-ergaenzungen-zu-c-c++-mode) |
7 | (add-hook 'cc-mode-hook 'kw-ergaenzungen-zu-c-c++-mode) |
8 | ... |
9 | (defun abbrev-korrekt-if() "Korrektur fuer if-Abkuerzung" |
10 | (push-mark) |
11 | (set-mark (point)) |
12 | (previous-line 3) |
13 | (beginning-of-line nil) |
14 | (indent-region (point) (mark) nil) |
15 | (pop-mark) |
16 | (end-of-line nil) |
17 | (backward-char 2) |
18 | ) |
19 | ... |
20 | (quietly-read-abbrev-file "~/.abbrev") |
21 | ... |
In meiner .abbrev wiederum steht dann:
1 | (define-abbrev-table 'c++-mode-abbrev-table '( |
2 | ... |
3 | ("if" "if( ) |
4 | { |
5 | |
6 | }" abbrev-korrekt-if 9) |
7 | ... ggf. weitere Abkürzungen ... |
8 | )) |
9 | ... analog mit c-mode-abbrev-table... |
Wenn der EMACS startet, liest er die .abbrev (wegen quietly-read-abbrev-file) und merkt sich die Abkürzung für if. Wenn ich dann in einem C-Buffer if tippe und ein Leerzeichen, dann wird if ersetzt durch
1 | if( ) |
2 | { |
3 | |
4 | } |
und danach die Funktion abbrev-korrekt-if aufgerufen. Die rückt alles sauber ein und positioniert dann den Cursor in der Bedingungsklammer, damit ich dort weiterschreiben kann.
Hallo zusammen, ich sehe hier ist ein Kenner was (X)Emacs angeht. Ich wollte mich schon lange mal mit dem Editor auseinander setzen. Ich habe zwar jetzt den Sigasi zum testen, aber ich bin dann doch eher der OpenSource Nutzer. Jetzt aber mal zu meiner Frage: Gibt es ein gutes Tutorial oder Buch zu (X)Emacs? welches ihr empfehlen könnt? Die Doku auf deren Homepage habe ich mir bis jetzt noch nicht angeschaut, hoffe aber am Wochenende vielleicht mal dazu zu kommen. Gruß Boris
Es gibt viel, aber mir hilft es am ehesten, wenn man von anderen Konfigurationsdateien abkupfern kann. Ich hänge meine beiden mal an (geht unter Unix/Linux etc. ebenso wie unter Windows). Die beiden müssen .emacs bzw. .abbrev heißen; ich glaube aus dem . wird im Anhang hier ein _; dann bitte umbenennen.
Vielen Dank, werde mich am Wochenende mal intensiver damit beschäftigen.
Klaus Wachtler schrieb: > Damit gehört (wenn man im VHDL-Modus ist) ein Unterstrich zu den > Zeichen, die ein Wort ausmachen. Geschmackssache, ob das gewünscht ist. Bei Sprachen ohne Namespaces benutzt man ja gerne den Unterstrich, um Namenshierarchien zu erzeugen. Will man dann ein "Wort" manipulieren, dann kann es sinnvoll sein, dass der Unterstrich die Aktion begrenzt. Ich empfehle dem OP, zunächst folgenden workaround: M-C-Space M-w C-s M-y (sexp markieren, in den kill-ring kopieren, suche starten, kill-ring einfügen) Gruß Marcus
Klaus Wachtler schrieb: > War ja nicht mein Wunsch :-) Das geht aber in der Tat vielen so (mich eingeschlossen), dass man das in den Emacsen vorgesehene Verhalten erstmal komisch findet. Versteht man den Hintergrund und hat sich nach einiger Zeit daran gewöhnt, dann findet man das andere Verhalten komisch. Mich nervt es zum Beispiel beim Verilog mode und, heute seltener genutzt, Specman mode, dass der Autor beider modes den Unterstrich als "word constituent" definiert hat. Ich hatte deswegen schon vor Jahren eine Diskussion mit dem Autor, die leider fruchtlos war. Gruß Marcus
Das ist m.E. kein Grund zum Unglücklichsein, solange man sich alles umkonfigurieren kann, wie man will.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.