1. ホーム
  2. linux

[解決済み】VimやLinuxでスペースをタブに変換するにはどうしたらいいですか?

2022-04-09 08:43:29

質問

Stack Overflowでスペースをタブに変換する方法についていくつかの質問に目を通しましたが、必要なものが見つかりませんでした。タブをスペースに変換する方法についての質問が多いようですが、私はその逆を行おうとしているのです。

Vim 私は :retab:retab! しかし、これらはタブとスペースの間の移動のためのものだと思います。

両方試しましたが expandunexpand をコマンドプロンプトで実行しましたが、うまくいきませんでした。

以下が問題のファイルです。

http://gdata-python-client.googlecode.com/hg-history/a9ed9edefd61a0ba0e18c43e448472051821003a/samples/docs/docs_v3_example.py

を変換するにはどうすればよいですか? リーディング のどちらかを使用して、スペースをタブに変換します。 Vim それともシェル?

解決方法は?

Vim を使ってすべてを展開する リーディング よりも広い)スペース 'tabstop' を使用したのは正解でした。 retab が、まず 'expandtab' がリセットされます ( :verbose set ts? et? はお友達です)。 retab を取る。 範囲 を指定します。 % は、ファイル全体を意味します。

:set tabstop=2      " To match the sample file
:set noexpandtab    " Use tabs, not spaces
:%retab!            " Retabulate the whole file

このようなことをする前に(特にPythonのファイルでは!)、私は通常 'list' ができるように 見る の空白を削除して変更します。

で以下のようなマッピングをしています。 マイ .vimrc を、このようにします。

nnoremap    <F2> :<C-U>setlocal lcs=tab:>-,trail:-,eol:$ list! list? <CR>