Проблема в том, что ваша переменная $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 напрямую и разрешит все операции импорта внутри.
Вы можете сделать это с помощью макроса и применить его к нескольким файлам.
Вот один пример. Введите следующее:
3gg$"ayiw:6,$s/^/<C-R>a/<CR>:w<CR>:bn<CR>
Теперь это выглядит ужасно. Дайте мне посмотреть, смогу ли я объяснить это немного лучше.
3gg $
: перейти в конец третьей строки.
"ayiw
: скопировать последнее слово в регистр a
.
: 6, $ s / ^ /
: В каждой строке, начиная с 6-й, заменить в начале все, что находится в регистре a.
: w
: Сохраните и перейдите к следующему буферу.
Теперь вы можете сопоставить это с ключом с помощью
: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, и все должно быть сделано.
Тем не менее, мне определенно было бы удобнее делать это на правильном языке сценариев, это '
В одном типе файла в обычном режиме:
qqgg/^Shipment,<CR>ww"ay$}j:.,$s/^/<C-R>a,<CR>q
Обратите внимание, что
- это клавиша ENTER, а
- CTRL-R.
Это обновит этот файл и запишет команды в регистр q.
Затем каждый другой тип файла @q (также в нормальном режиме). (будет воспроизведен регистр q)
Это можно сделать как однострочник 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'
Ну, не обижайте меня, но ... вы могли бы подумать: не делайте этого в vim !!
Это классический пример использования языков сценариев. Возьмите базовый учебник по Python, Perl или Ruby. Решение для этого было бы
Регулярное выражение для этого может быть не слишком сложным, и это выполнимо в vim. Но есть гораздо более простые альтернативы. И гораздо более гибкие.
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
Я также думаю, что это не очень подходит для vim, а как насчет Bash?
FILENAME='filename.csv' && SHIPMENT=`grep Shipment $FILENAME | sed 's/^Shipment,//'` && cat $FILENAME | sed "s/^[0-9]/$SHIPMENT,&/" > $FILENAME