
나는 vim 들여쓰기가 다음과 같이 작동하기를 원합니다.
▷ ▷ int function(int x,▒int y, int z) {
Enter 키를 누르면 다음을 얻고 싶습니다.
▷ ▷ int function(int x,
▷ ▷ _____________int y, int z) {
여기서 "▷"는 탭이고 "_"는 공백입니다.
즉, 탭을 사용하고 싶지만 들여쓰기 수준을 추가하지 않는 곳에 줄 바꿈이 있는 경우 들여쓰기되지 않은 줄을 공백에 맞춰 정렬해야 합니다.
이를 통해 들여쓰기에 탭을 사용할 수 있지만 탭 크기가 변경되더라도 서식이 유지되도록 들여쓰기가 아닌 수준에서 서식을 유지할 수 있습니다.
지금까지 나는 Vim으로 이것이 가능한 방법을 찾지 못했습니다. Preserveindent와 copyindent는 내가 찾고 있는 것이 아닙니다. 그들은 확장 탭을 존중하며 들여쓰기에는 확장 탭만 사용하고 정렬에는 공백을 사용하고 싶습니다.
답변1
답변2
현재 vim에서는 이것이 가능하지 않은 것 같습니다. 탭이나 공백 중 하나를 사용할 수 있으며 둘 다 사용할 수는 없습니다. 탭 위에 공백이 있는 시간은 언어에 매우 민감하므로 놀랄 일이 아닙니다. 고려 사항: Python에서는 다음을 어떻게 처리합니까?
x = fn(abc, 'def', {
ghi: jkl,
mno: pqr,
})
어느 시점에서 탭으로 돌아가야 합니까? 그것은 이상적이지만 상황에 매우 민감하며 실제로 언어 간 작동하지 않습니다. Haskell의 또 다른 재미있는 예는 다음과 같습니다.
data Something = Something { flag1 :: Bool
, flag2 :: Bool }
deriving (Eq, Ord, Show)
행운을 빕니다.
불행하게도 이런 종류의 기능을 위해서는 언어별 확장이 필요하다는 결론을 내렸습니다. 하지만 이를 수행하는 좋은 방법을 알고 계시다면 듣고 싶습니다.