我正在尝试将我的vimrc文件分成多个文件 - init.vim、keybindings.vim、ui.vim等 - 但我无法将 Vim 获取到相对于的源文件init.vim(而是相对于我启动 Vim 的位置的源文件。
这是我在顶部得到的init.vim:
source keybindings.vim
source ui.vim
Run Code Online (Sandbox Code Playgroud)
如果我vim从与这些文件相同的目录运行,它就可以正常工作;如果我从任何其他目录运行它,我会收到以下错误:
Error detected while processing /path/to/vimrc:
line 1:
E484: Can't open file keybindings.vim
line 2:
E484: Can't open file ui.vim
Press ENTER or type command to continue
Run Code Online (Sandbox Code Playgroud)
编辑:值得注意的是,我使用的是 NixOS,所以我不知道绝对路径是什么,也不知道如果我发现它们是否会保持不变。
我无法弄清楚如何在图形周围添加边框,我的理解是这将是figure.edgecolor参数或savefig(edgecolor),但这似乎不起作用.我正在使用matplotlib 1.1.1.我希望这段代码在图周围绘制一个红色边框:
import matplotlib.pyplot as plt
plt.plot([1,2,3])
plt.savefig('test.png', edgecolor='r', facecolor='g')
Run Code Online (Sandbox Code Playgroud)
当我看到这个图时它有一个绿色的脸色,但我看不到红色的边缘色?
以下内容也不起作用:
import matplotlib.pyplot as plt
plt.figure(edgecolor='r', facecolor='g')
plt.plot([1,2,3])
plt.show()
Run Code Online (Sandbox Code Playgroud)
我再次看到绿色的脸色,但没有红色的边缘色.我究竟做错了什么?
有任何想法吗?
有点类似于How to convert HTML with mathjax into latex using pandoc?但在某种意义上,恰恰相反。
如果我使用 Pandoc 用 LaTeX 创建 MD 文件,甚至只是 MD 文件,我如何使用 Pandoc 将这些文件转换为带有正确的\(\),\[\]数学标签的HTML ?
我正在尝试使用pandocWindows 系统将 Markdown 文件转换为 pdf 。由于我的 markdown 包含汉字,所以我使用以下命令来生成 pdf:
pandoc --pdf-engine=xelatex -V CJKmainfont=KaiTi test.md -o test.pdfbut
Run Code Online (Sandbox Code Playgroud)
但是 pandoc 抱怨该文件包含它无法处理的非 utf8 字符,确切的错误消息是:
生成 PDF 时出错。
!未定义的控制序列。
pandoc.exe:无法解码字节“\xae”:>Data.Text.Internal.Encoding.streamDecodeUtf8With:UTF-8 流无效
根据我在互联网上找到的内容。这主要是由于markdown文件的编码,可能与pandoc无关。我的文件包含很多汉字和英文字符。我已将其转换为 utf-8 编码。
按照此处和此处的说明进行操作。我已验证系统区域设置为 UTF-8,输出localectl status为:
System Locale: LANG=en_US.UTF-8
VC Keymap: us
X11 Layout: us
Run Code Online (Sandbox Code Playgroud)
我试图 grep 非 utf8 字符。使用的命令是grep -axv '.*' test.md. 但是命令什么也没输出。(我认为这意味着没有 utf-8 无法解码的无效字符。)
我按照此处的说明尝试从我的文件中删除非 utf8 字符。我使用的命令是:
iconv -f utf-8 -t utf-8 -c …Run Code Online (Sandbox Code Playgroud) 我正在尝试将多个图表放入 python 生成的幻灯片中,但我需要幻灯片的尺寸更宽。我浏览了提供的可用文档,但内容并不多。
我正在尝试设置一个选项,但是使用变量时它不起作用。
这实际上是有效的:
set runtimepath+=~/.vim/bundle/foo/foo.vim/
Run Code Online (Sandbox Code Playgroud)
当我尝试此操作时,它不再起作用:
g:foo_path = '~/.vim/bundle/foo/foo.vim/'
set runtimepath+=g:foo_path
Run Code Online (Sandbox Code Playgroud)
我在这里看到了类似的主题,他们使用以下命令来设置带有变量的选项:
let &backupdir=s:vimetc.'backups/'
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试这样做时:
let &runtimepath+=g:foo_path
Run Code Online (Sandbox Code Playgroud)
它仍然不起作用。我正进入(状态:
E734: Wrong variable type for +=
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?谢谢。
我在Linux上,想要将字符串(在utf-8中)写入txt文件.这是我的代码:
# -*- coding: UTF-8-*-
import os
import sys
def __init__(self, dirname, speaker, file, exportFile):
text_file = open(exportFile, "a")
text_file.write(speaker.encode("utf-8"))
text_file.write(file.encode("utf-8"))
text_file.close()
Run Code Online (Sandbox Code Playgroud)
当我在Windows上时,它可以工作.但在Linux上,我收到此错误:
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position in position 36: ordinal not in range(128)
Run Code Online (Sandbox Code Playgroud)
我怎么解决这个问题?谢谢.
我有一个字符串和三个要匹配的模式,我使用python re包。具体来说,如果找到模式之一,则输出“不喜欢”,否则,输出“喜欢”。有关这三种模式的简要信息:
模式1:检查字符串中的所有字符是否均为大写字母
模式2:检查连续字符是否相同,例如
AA,BB...pattern3:检查是否
XYXY存在模式,X并且Y可以相同,并且该模式中的字母不需要彼此相邻。
当我分别编写模式时,程序将按预期运行。但是,当我使用交替组合三种模式时|,结果是错误的。我已经检查了stackoverflow帖子,例如,在这里和这里。提供的解决方案对我不起作用。
这是可以正常工作的原始代码:
import sys
import re
if __name__ == "__main__":
pattern1 = re.compile(r"[^A-Z]+")
pattern2 = re.compile(r"([A-Z])\1")
pattern3 = re.compile(r"([A-Z])[A-Z]*([A-Z])[A-Z]*\1[A-Z]*\2")
word = sys.stdin.readline()
word = word.rstrip('\n')
if pattern1.search(word) or pattern2.search(word) or pattern3.search(word):
print("Dislikes")
else:
print("Likes")
Run Code Online (Sandbox Code Playgroud)
如果我使用以下代码将3种模式组合为一种,则可能是错误的:
import sys
import re
if __name__ == "__main__":
pattern = r"([A-Z])[A-Z]*([A-Z])[A-Z]*\1[A-Z]*\2|([A-Z])\1|[^A-Z]+"
word = sys.stdin.readline()
word = word.rstrip('\n')
if re.search(word, pattern):
print("Dislikes")
else:
print("Likes") …Run Code Online (Sandbox Code Playgroud) 给定两个只包含
0or的字符串str1和str21,有一些步骤可以将str1更改为str2,step1:找到长度为2的str1子串并反转子串,str1变为str1'(str1'!= str1)
step2:找到长度为3的str1'子串,并反转子串,str1'变为str1''(str1''!= str1')
以下步骤类似.
字符串长度在[2,30]范围内
要求:每个步骤必须执行一次,我们不能跳过前面的步骤并执行下一步.
如果可以将str1更改为str2,则输出所需的最小步数,否则输出-1
str1 ="1010",str2 ="0011",所需的最小步长为2
首先,选择范围[2,3],"1010" - >"1001"中的子串,
然后选择[0,2],"1001" - >"0011"范围内的子串
str1 ="1001",str2 ="0110",不可能将str1更改为str2,因为在步骤1中,str1可以更改为"0101"或"1010",但在步骤3中,不可能更改length3子串使它与众不同 所以输出为-1.
str1 ="10101010",str2 ="00101011",输出为7
我无法弄清楚示例3,因为有两种可能性.任何人都可以提供一些如何解决这个问题的提示吗?这个问题是什么类型的?是动态编程吗?
我有一个用例,我对批次中的每个样本进行转发,并且仅根据样本模型输出的某些条件累积某些样本的损失。这是一个说明性代码,
for batch_idx, (data, target) in enumerate(train_loader):
optimizer.zero_grad()
total_loss = 0
loss_count_local = 0
for i in range(len(target)):
im = Variable(data[i].unsqueeze(0).cuda())
y = Variable(torch.FloatTensor([target[i]]).cuda())
out = model(im)
# if out satisfy some condtion, we will calculate loss
# for this sample, else proceed to next sample
if some_condition(out):
loss = criterion(out, y)
else:
continue
total_loss += loss
loss_count_local += 1
if loss_count_local == 32 or i == (len(target)-1):
total_loss /= loss_count_local
total_loss.backward()
total_loss = 0
loss_count_local = 0
optimizer.step()
Run Code Online (Sandbox Code Playgroud)
我的问题是,正如我对所有样本进行前向操作,但仅对某些样本进行后向操作。那些不造成损失的样本的图表什么时候会被释放?这些图表是否仅在 …
python ×4
pandoc ×2
utf-8 ×2
vim ×2
algorithm ×1
bash ×1
latex ×1
markdown ×1
mathjax ×1
matplotlib ×1
neovim ×1
powerpoint ×1
python-2.x ×1
python-pptx ×1
pytorch ×1
regex ×1
string ×1
unicode ×1