小编idb*_*rii的帖子

如何在vimscript中将varargs传递给另一个函数?

我想为插件的函数编写一个包装器,但它使用了varargs(...).如何将我的函数接收的相同参数传递给插件的函数?

例:

function! PluginInterface(...)
    for i in a:000
        echo i
    endfor
endfunction

function! MyInterface(...)
    echo a:1 . ' is great'
    call PluginInterface(a:000)
endfunction

echo '>> Their call'
call PluginInterface('hello', 'world')
echo '>> My call'
call MyInterface('hello', 'world')
Run Code Online (Sandbox Code Playgroud)

vim variadic-functions

10
推荐指数
1
解决办法
1079
查看次数

如何将新的默认包添加到 virtualenv?

当我创建一个 virtualenv 时,它会安装 setuptools 和 pip。是否可以将新软件包添加到此列表中?

示例用例:

  • 遵循这个在 virtualenv 中使用 ipython 的解决方案(来自这个问题)需要在每个 virtualenv 中安装 ipython (除非我允许系统站点包)。
  • 或者,如果我只做flask/pygame/framework 开发,我希望它在每个virtualenv 中。

python virtualenv ipython

9
推荐指数
1
解决办法
3166
查看次数

如何在 Windows 上使用 pathlib 输出带有正斜杠的路径?

如何使用pathlib输出带有正斜杠的路径?我经常遇到只接受带有正斜杠的路径的程序,但我不知道如何让 pathlib 为我做到这一点。

from pathlib import Path, PurePosixPath

native = Path('c:/scratch/test.vim')
print(str(native))
# Out: c:\scratch\test.vim
# Backslashes as expected.

posix = PurePosixPath(str(native))
print(str(posix))
# Out: c:\scratch\test.vim
# Why backslashes again?

posix = PurePosixPath('c:/scratch/test.vim')
print(str(posix))
# Out: c:/scratch/test.vim
# Works, but only because I never used a Path object

posix = PurePosixPath(str(native))
print(str(posix).replace('\\', '/'))
# Out: c:/scratch/test.vim
# Works, but ugly and may cause bugs
Run Code Online (Sandbox Code Playgroud)

PurePosixPathpathlib 中没有unlinkglob、 和其他有用的实用程序,因此我不能专门使用它。PosixPath在 Windows 上抛出 NotImplementedError。

这是必要的实际用例:zipfile.ZipFile需要正斜杠,但在给定反斜杠时无法匹配路径。 …

python pathlib

8
推荐指数
1
解决办法
5614
查看次数

在Android中存储SD卡上的数据

使用文档中数据存储页面,我试图将一些数据存储到SD卡中.这是我的代码:

    // Path to write files to
    String path = Environment.getExternalStorageDirectory().getAbsolutePath() +
                  "/Android/data/"+ctxt.getString(R.string.package_name)+"/files/";
    String fname = "mytest.txt";

    // Current state of the external media
    String extState = Environment.getExternalStorageState();

    // External media can be written onto
    if (extState.equals(Environment.MEDIA_MOUNTED))
    {
        try {
            // Make sure the path exists
            boolean exists = (new File(path)).exists();  
            if (!exists){ new File(path).mkdirs(); }  

            // Open output stream
            FileOutputStream fOut = new FileOutputStream(path + fname);

            fOut.write("Test".getBytes());

            // Close output stream
            fOut.flush();
            fOut.close();

        } catch …
Run Code Online (Sandbox Code Playgroud)

android sd-card

7
推荐指数
1
解决办法
8148
查看次数

Pydoc无法正常工作(Windows XP)

使用Windows XP和Python 2.7我尝试通过终端运行"pydoc".不幸的是它不起作用.

因为我不允许发布截图(新手).这就是它所说的(白底黑)

我键入的内容:

"C:\Python27>pydoc raw_input  /"pydoc raw_input"
Run Code Online (Sandbox Code Playgroud)

我的结果(它是德语,大致翻译为"命令"pydoc"拼写错误或无法找到.):

Der Befehl "pydoc" ist entweder falsch geschrieben oder konnte nicht gefunden werden. 
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

顺便说一下,我刚刚开始使用Zed Shaws"学习Python艰难的方式"自学编程,这是我用谷歌无法弄清楚的第一个问题.我开始相信它不是我的Windows ...(太过于破产而不敢买Mac并且害怕学习Linux).

python windows-xp pydoc

6
推荐指数
2
解决办法
7572
查看次数

Lua - 太多 C 级别(限制为 200)

我最近遇到了一个问题,我看到错误“太多 C 级别(限制为 200)”。

它到底意味着什么?我该如何防止这种情况发生?

我认为这与循环需求有关,但它指向我的代码中创建类的新实例的一行,如下所示:

Class:new()
Run Code Online (Sandbox Code Playgroud)

至于我的模块,我确实有一些循环需求,但我尝试通过将外部类移动到同一个模块中来修复它们,如下所示:

Class.SubClass = Class:new()
Run Code Online (Sandbox Code Playgroud)

有什么想法吗?

更新:

这是我遇到的一个例子:

lua类

local Class = {}

function Class:new(o)
    o = o or {}
    setmetatable(o, self)
    self.__index = self
    return o
end

return Class
Run Code Online (Sandbox Code Playgroud)

类/Entity.lua

local Class = require('Class')
local Player = require('classes/Player')

local Entity = Class:new()

function Entity:getPlayer() 
    return Player:new() 
end

return Entity
Run Code Online (Sandbox Code Playgroud)

类/Player.lua

local Class = require('Class')
local Entity = require('classes/Entity')

local Player = Class:new()

function Player:getEntities() 
    local entities = {}
    for i = 1, 100 …
Run Code Online (Sandbox Code Playgroud)

lua dependencies require

6
推荐指数
1
解决办法
3223
查看次数

在具有大C文件的vim中启用语法和语法折叠会使完成速度变慢

当我在大型C文件(约8000行)中启用语法时,完成ctrl-p和ctrl-n的速度非常慢(超过20)。当我关闭语法时,完成时间不到一秒钟。

我想出了一种再现这种行为的最小方法。使用一个空的.vim文件夹并仅使用以下几行创建一个.vimrc:

set syntax on
set foldmethod=syntax
Run Code Online (Sandbox Code Playgroud)

当您打开一个大的C文件时,完成(甚至是常规编辑)的速度非常慢。

编辑:

此行为是由于我使用的是Beta版本。我不确定是否应该完全删除此问题,还是将其留给其他人也有同样问题的线索。

c vim

5
推荐指数
2
解决办法
816
查看次数

如何使vim标签跳转像OmniCppComplete一样智能?

我生成我的标签(Exuberant Ctags 5.9~svn20110310),如下所示:

 ctags --c++-kinds=+p --fields=+iaS --extra=+q -L ctags.files
Run Code Online (Sandbox Code Playgroud)

我大致有这个类结构:

class RenderObject
{
    InterpolatedVector offset;
};

class Quad : public RenderObject
{
};

class KeyframeWidget : public Quad
{
    void shiftRight()
    {
        if (!offset.isInterpolating())
            offset.interpolateTo(Vector(offset.x+80, 0), 0.1, 0, 0, 0);
    }
};
Run Code Online (Sandbox Code Playgroud)

(代码来自Aquaria的开源版本.)

如果我标记跳转offset(Ctrl- ]),那么我offset在代码库中得到一个列表.输入offset.结束后shiftRight(),OmniCppComplete仅开始提供完成InterpolatedVector.

如何让我的标签像OmniCppComplete一样聪明?

只是标签跳转不使用任何上下文,所以他们只知道符号名称?(它是否完全相同:tag <C-r><C-w><CR>?)是否存在使其具有上下文感知能力的vim替代方案?

c++ vim ctags omnicppcomplete exuberant-ctags

5
推荐指数
1
解决办法
580
查看次数

不同的 Vim 插件可以有不同的 localleader 吗?

我开始使用一个与我现有地图冲突的插件,但我不想重新映射所有地图,我只想添加一个前缀。我以为我可以用 LocalLeader 做到这一点。

Vimdoc 说:

<LocalLeader>就像<Leader>,除了它使用“maplocalleader”而不是“mapleader”。 <LocalLeader>用于缓冲区本地的映射。

似乎设置 localleader 的唯一方法是设置一个全局变量(文档没有提到这一点,但b:maplocalleader没有用):

let maplocalleader = '\\'
Run Code Online (Sandbox Code Playgroud)

而且我不知道我如何干净地取消设置该变量(在设置插件后清除它的 autocmd!?)

有没有办法做到这一点?还是 LocalLeader 只提供一个全局前缀和一个特定于文件类型的前缀?

vim plugins vim-plugin

5
推荐指数
1
解决办法
405
查看次数

我可以使用 css 中的变量设置画布 fillStyle 吗?

如何使用css 变量来设置画布颜色?

例子:

<html>
  <head>
    <style>
:root {
  --color-bright:#ffca00;
  --color-bg:#40332e;
}

body {
  background-color: var(--color-bg);
  color: var(--color-bright);
}

    </style>
  </head>
  <body>
    <center>
      <div>
        <canvas id="loadingCanvas" oncontextmenu="event.preventDefault()" width="800" height="600"></canvas>
      </div>
    </center>

    This text is actually yellowish.

    <script type='text/javascript'>
      var loadingContext = document.getElementById('loadingCanvas').getContext('2d');
      var canvas = loadingContext.canvas;

      loadingContext.fillStyle = "rgb( 0, 0, 0 )";
      // Doesn't work (should be brown instead of black):
      loadingContext.fillStyle = "var(--color-bg)";
      loadingContext.fillRect(0, 0, canvas.scrollWidth, canvas.scrollHeight);

      loadingContext.font = '30px sans-serif';
      loadingContext.textAlign = 'center'
      loadingContext.fillStyle = "rgb( …
Run Code Online (Sandbox Code Playgroud)

html javascript css

5
推荐指数
1
解决办法
2422
查看次数