Vim: \n по сравнению с \r

В самом деле, так, как я решил, что дилеман должен был удалить панель внешнего стека и вместо этого установить scrollviewer в том месте, которое я хотел в основной сетке.

        <Grid Style="{StaticResource LayoutRootStyle}">
    <Grid.RowDefinitions>
        <RowDefinition Height="160"/>
        <RowDefinition Height="*"/>
    </Grid.RowDefinitions>        

    <!-- Vertical scrolling grid used in most view states -->    

        <ScrollViewer Grid.Row="1" HorizontalScrollBarVisibility="Auto">
            <StackPanel Orientation="Horizontal">
                <GridView>
                ...
                </GridView>
            </StackPanel>
        </ScrollViewer>        
23
задан Whaledawg 8 December 2008 в 19:55
поделиться

8 ответов

Поиск:

:set fileformat=unix
:set fileformat=dos

Это может использоваться на любой платформе для переключения на другое кодирование.

22
ответ дан Jonathan Leffler 29 November 2019 в 01:04
поделиться

Похоже, вы спрашиваете две вещи. Одной из проблем является \r против \n, которые другие освещали.

Другая проблема - \n справа от замены. Если вы посмотрите на :h s/\n, он говорит, что \n в замещающей части замещения вставляет <NUL> / <NL>, а НЕ перевод строки.

Если вы сделаете :%s/\n/\n/ и сохраните и откроете файл в шестнадцатеричном редакторе, все ^@ символов будут ASCII 0 (NUL-символы). Почему разработчики Vim используют \n слева для конца строки и \n справа для NUL, мне не понятно. Но это специфическое поведение не имеет ничего общего с Windows против Unix.

26
ответ дан Brian Carper 29 November 2019 в 01:04
поделиться

Негласно, Vim использует \r (возвраты каретки) для сохранения Конца Строк (независимо от формата файла, который только имеет значение, когда файл читается или пишется). Vim использует \n для представления NULs. Однако Вы ищете EOL, поскольку \n, но в замене, \n обозначает NUL. В этом объясняют: h sub-replace-sepcial. Поиск \r найдет возвраты каретки, которые не были частью EOL формата файла. Существует долгое объяснение в: h форматы файлов.

7
ответ дан graywh 29 November 2019 в 01:04
поделиться

vim возится с возвратами каретки (\ r) и символами новой строки (\ n). Например, если вы работаете в Unix и vi показывает строки, заканчивающиеся на '^ M', потому что они являются текстовыми файлами Windows, простой способ избавиться от них - ввести команду

:%s/^V^M/^V^M/g

Не похоже, что это должно что-то делать, но это так.

3
ответ дан Paul Tomblin 29 November 2019 в 01:04
поделиться
:%s/^V^M/^V^M/g

Точно так же следующее делает то же самое (я думаю), и легче вывести.

:%s/\r/\r/g
3
ответ дан 29 November 2019 в 01:04
поделиться

Под Unix, в энергии, ^V + <enter> дает мне ^M, который является \r символ.

кроме того, Вы не можете найти \r внутренняя энергия, если Вы не говорите ей редактировать файл в режиме двоичного счета, то есть, не используя автоматический режим по умолчанию, где она автоматически обнаруживает окончание строки. (это должно распечатать [dos] в состоянии.)

2
ответ дан mat 29 November 2019 в 01:04
поделиться

Я думаю, что проблема могла бы заключаться в том, как тот Windows, и Unix делают новые строки. Формат для Unix является \n (перевод строки), но для Windows это - \r\n (возврат каретки, перевод строки).

2
ответ дан Sean 29 November 2019 в 01:04
поделиться

В Windows, если вы открываете файл в текстовом режиме, \ n интерпретируется как символы новой строки и перевода строки. Обычно это не так для систем * nix.

0
ответ дан Joel Coehoorn 29 November 2019 в 01:04
поделиться