энергия и файл CSV: поместите информацию о заголовке в новый столбец

Проблема в том, что ваша переменная $backgroundColor не была определена. Скорее всего, файл, который определяет его, не был в комплекте.

Вы можете решить это, импортировав файл main.scss в блок стиля компонента, и он должен быть решен.

<!--App.vue-->

<template>

    <div id="app"></div>

</template>

<script>

    export default {

        name: "App"

    }

</script>

<style lang="scss" src="public/app/styles/main.scss"></style>
<style scoped lang="scss">

    @import "public/app/style/main.scss";

    #app {
        width: 100%;
        height: 100%;
        background-color: $backgroundColor;        
    }

</style>

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

Однако, если импорт не работает, вы можете попробовать включить файл непосредственно из компонента, используя тег style с атрибутом src:

<!--App.vue-->

<template>

    <div id="app"></div>

</template>

<script>

    export default {

        name: "App"

    }

</script>

<style lang="scss" src="public/app/styles/main.scss"></style>
<style scoped lang="scss">

    #app {
        width: 100%;
        height: 100%;
        background-color: $backgroundColor;        
    }

</style>

С этим синтаксисом, упаковщик загрузит файл SCSS напрямую и разрешит все операции импорта внутри.

5
задан Sagar Jain 25 September 2015 в 19:13
поделиться

6 ответов

Вы можете сделать это с помощью макроса и применить его к нескольким файлам.

Вот один пример. Введите следующее:

3gg$"ayiw:6,$s/^/<C-R>a/<CR>:w<CR>:bn<CR>

Теперь это выглядит ужасно. Дайте мне посмотреть, смогу ли я объяснить это немного лучше.

3gg $ : перейти в конец третьей строки.

"ayiw : скопировать последнее слово в регистр a .

: 6, $ s / ^ / a / : В каждой строке, начиная с 6-й, заменить в начале все, что находится в регистре a.

: w : bn : Сохраните и перейдите к следующему буферу.

Теперь вы можете сопоставить это с ключом с помощью

:nnoremap <C-A> 3gg$"ayiw:6,$s/^/<C-R>a/<CR>:w<CR>:bn<CR>

Затем, если у вас есть, скажем, 200 файлов csv, вы открываете vim как

vim *.csv

, а затем

200<C-A>

Там, где вы набираете Ctrl-A, и все должно быть сделано.

Тем не менее, мне определенно было бы удобнее делать это на правильном языке сценариев, это '

3
ответ дан 13 December 2019 в 05:41
поделиться

В одном типе файла в обычном режиме:

qqgg/^Shipment,<CR>ww"ay$}j:.,$s/^/<C-R>a,<CR>q

Обратите внимание, что - это клавиша ENTER, а - CTRL-R.

Это обновит этот файл и запишет команды в регистр q.

Затем каждый другой тип файла @q (также в нормальном режиме). (будет воспроизведен регистр q)

4
ответ дан 13 December 2019 в 05:41
поделиться

Это можно сделать как однострочник Perl:

perl -i.bak -e' $c = do {local $/; <>};
                ($n) = ($c =~ /Shipment,(\w+)/);
                $c =~ s/^(\d+,)/$n,$1/gm;
                print $c' shipment.csv

Это будет читать содержимое shipment.csv в $ c , извлекать Идентификатор отправления в $ n и перед каждой строкой CSV указывать номер отправления. Файл будет изменен на месте с резервной копией, сохраненной в shipment.csv.bak .

Чтобы сделать это из Vim, настройте его как фильтр:

:%!perl -e' $c = do {local $/; <>}; ($n) = ($c =~ /Shipment,(\w+)/); $c =~ s/^(\d+,)/$n,$1/gm; print $c'
2
ответ дан 13 December 2019 в 05:41
поделиться

Ну, не обижайте меня, но ... вы могли бы подумать: не делайте этого в vim !!

Это классический пример использования языков сценариев. Возьмите базовый учебник по Python, Perl или Ruby. Решение для этого было бы

Регулярное выражение для этого может быть не слишком сложным, и это выполнимо в vim. Но есть гораздо более простые альтернативы. И гораздо более гибкие.

1
ответ дан 13 December 2019 в 05:41
поделиться

Why vim?

Try this shell script:

#!/bin/sh

input=$1

shipment=`grep Shipment $input|awk -F, '{print $2}'`

mv $input $input.orig

sed -e "s/^\([0-9]\)/$shipment,\1/" $input.orig > $input

You could iterate through specific files:

for input in *.txt
do
    script.sh $i
done
1
ответ дан 13 December 2019 в 05:41
поделиться

Я также думаю, что это не очень подходит для vim, а как насчет Bash?

FILENAME='filename.csv' && SHIPMENT=`grep Shipment $FILENAME | sed 's/^Shipment,//'` && cat $FILENAME | sed "s/^[0-9]/$SHIPMENT,&/" > $FILENAME
1
ответ дан 13 December 2019 в 05:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: