vim/emacs: Wie schreibe ich ein echtes TAB, also \t

Warum Debian und/oder eine seiner Spielarten? Was muss ich vorher wissen? Wo geht es nach der Installation weiter?
Antworten
buhtz
Beiträge: 1106
Registriert: 04.12.2015 17:54:49
Kontaktdaten:

vim/emacs: Wie schreibe ich ein echtes TAB, also \t

Beitrag von buhtz » 17.09.2023 20:04:08

Ich lerne gerade, das Makefiles tatsächlich TABs als Einzug sehen wollen. Kein Leerzeichen, egal wie viel.

Wie schreibe ich ein Tab, wenn vim und emacs darauf getrimmt sind immer 4 Leerzeichen draus zu machen? Ich will ja nicht die ganze config außer Kraft setzen. Gibt es irgendeine Zauber-Tastenkombination oder so?
Debian 11 & 12; Desktop-PC, Headless-NAS, Raspberry Pi 4
Teil des Upstream Betreuer Teams von Back In Time (Debianbackintime)

Benutzeravatar
MSfree
Beiträge: 10777
Registriert: 25.09.2007 19:59:30

Re: vim/emacs: Wie schreibe ich ein echtes TAB, also \t

Beitrag von MSfree » 17.09.2023 20:15:56

Vim ist nicht darauf getrimmt, Tabs durch 4 Leerzeichen zu ersetzen. Es stellt Tabs in der Standardeinstellung mit 4 Leerzeichen am Bildschirm dar, in der gesicherten Datei stehen trotzdem Tabs, das kann man ganz einfach mit einem Hexdump selbst überprüfen, oder aber auch, wie der Cursor über die Tabs fährt, wenn man sich nach links oder rechst über Tabs bewegt.

Mit set tabstops=3 in vim würde vim nur 3 Leerzeichen darstellen.

Was Emacs macht, ist mir ziemlich egal. Das ist weder ein vorinstallierter Standardeditor, noch wüßte ich, wie man den bedient. (Let the flame war vi vs. emacs begin).

tobo
Beiträge: 1996
Registriert: 10.12.2008 10:51:41

Re: vim/emacs: Wie schreibe ich ein echtes TAB, also \t

Beitrag von tobo » 17.09.2023 20:49:23

buhtz hat geschrieben: ↑ zum Beitrag ↑
17.09.2023 20:04:08
Wie schreibe ich ein Tab, wenn vim [...] darauf getrimmt sind immer 4 Leerzeichen draus zu machen?
Für die Grundsätzlichkeit ist es egal, wie tabstop eingestellt ist. Ist expandtab nicht gesetzt, dann ist ein Tab ein Tab (und auch STRG-V + TAB). Ist es gesetzt, dann ist STRG-V + TAB ein Tab.

chrbr
Beiträge: 550
Registriert: 29.10.2022 15:53:26

Re: vim/emacs: Wie schreibe ich ein echtes TAB, also \t

Beitrag von chrbr » 17.09.2023 22:25:26

Da du dich ja parallel mit Python befasst und möglicherweise Makefiles und Python Code mit VIM bearbeiten willst:
Unter Python verwendet man entweder Tabs oder Leerzeichen zur Einrückung. Beide Methoden in einer Datei führen zu Fehlern. Deshalb habe ich in meiner VIM Konfigurationsdatei folgende allgemeine Einstellungen:

Code: Alles auswählen

set noexpandtab
set shiftwidth=4
set tabstop=4
VIM kann den Filetyp erkennen. Damit kann ich für Python eine Ausnahme machen, und Tabs durch Leerzeichen ersetzen.

Code: Alles auswählen

autocmd filetype python set expandtab
Damit habe ich in normalen Dateien Einrückungen mit Tabulatoren, die im VIM mit vier Leerzeichen gedruckt werden. In Python Dateien wird jedes Tab durch vier Leerzeichen ersetzt.

tobo
Beiträge: 1996
Registriert: 10.12.2008 10:51:41

Re: vim/emacs: Wie schreibe ich ein echtes TAB, also \t

Beitrag von tobo » 18.09.2023 00:51:44

chrbr hat geschrieben: ↑ zum Beitrag ↑
17.09.2023 22:25:26
VIM kann den Filetyp erkennen.
Das ist auch das, was eine optimistische Doku dazu meint. Im Grunde wird aber nur die Dateiendung ausgewertet - ich kann ein Shell-Skript und ein Python-Skript beliebig umbenennen und erhalte als filetype den Typen der jeweiligen Dateiendung. `file' wird nicht befragt und was in /usr/share/vim/vim82/filetype.vim als "Heuristik" verkauft wird, das ist wohl eher als Witz gedacht!?

chrbr
Beiträge: 550
Registriert: 29.10.2022 15:53:26

Re: vim/emacs: Wie schreibe ich ein echtes TAB, also \t

Beitrag von chrbr » 18.09.2023 10:56:54

tobo hat geschrieben: ↑ zum Beitrag ↑
18.09.2023 00:51:44
`file' wird nicht befragt und was in /usr/share/vim/vim82/filetype.vim als "Heuristik" verkauft wird, das ist wohl eher als Witz gedacht!?
Das ist ja unglaublich! Die Datei habe ich mir mit Sicherheit bisher nie angesehen, ein schier unendlicher Vorrat an Dateitypen. Vielen Dank!

Benutzeravatar
shoening
Beiträge: 898
Registriert: 28.01.2005 21:05:59
Lizenz eigener Beiträge: MIT Lizenz

Re: vim/emacs: Wie schreibe ich ein echtes TAB, also \t

Beitrag von shoening » 18.09.2023 17:29:03

Hi,

ich verwende da die Automatismen von VIM. In meiner ~/.vimrc habe ich:

filetype on
filetype plugin on

Dann habe ich für die unterschiedlichen Datei-Typen in ~/.vim/ftplugin/<type>.vim Dateien, in denen ich die entspechenden Einstellungen vornehme
(z.B. "python.vim" oder "make.vim").

Viele Grüße
Stefan
Bürokratie kann man nur durch ihre Anwendung bekämpfen.

Antworten