小编Lev*_*evi的帖子

覆盖Mac上的系统vim

我安装了macvim via brew install macvim --override-system-vim.一切似乎都很好.当我ls -lart/usr/local/bin这里做的是我得到的符号链接相对于vim:

vimex -> ../Cellar/macvim/7.3-66/bin/vimex      
vimdiff -> ../Cellar/macvim/7.3-66/bin/vimdiff
vim -> ../Cellar/macvim/7.3-66/bin/vim
view -> ../Cellar/macvim/7.3-66/bin/view
vi -> ../Cellar/macvim/7.3-66/bin/vi
mvimex -> ../Cellar/macvim/7.3-66/bin/mvimex
mvimdiff -> ../Cellar/macvim/7.3-66/bin/mvimdiff
mvim -> ../Cellar/macvim/7.3-66/bin/mvim
mview -> ../Cellar/macvim/7.3-66/bin/mview
gvimex -> ../Cellar/macvim/7.3-66/bin/gvimex
gvimdiff -> ../Cellar/macvim/7.3-66/bin/gvimdiff
gvim -> ../Cellar/macvim/7.3-66/bin/gvim
gview -> ../Cellar/macvim/7.3-66/bin/gview
Run Code Online (Sandbox Code Playgroud)

另外,运行which vim收益率/usr/local/bin/vim.但是,当我vim从终端运行时,我得到的版本7.3而不是7.3.754/usr/local/Cellar/macvim/7.3-66/bin/vim直接运行时获得的版本.我在这里错过了什么,因为它显然不一样.

macos vim homebrew macvim

12
推荐指数
1
解决办法
1万
查看次数

法拉第连接:切换请求模式?

我用来faraday处理一些对内部 API 的请求。API 端点使用 CSRF 令牌,因此我也使用faraday-cookie_jar.

对于一些 API 端点,它们需要一个:multipart请求。其他人则不然。

问题

有没有办法利用同一个Connection对象,但无论你是否正在执行一个:multipart或一个:url_encoded请求,都可以切换?

目前,我必须使用两个连接,具体取决于我发出的请求类型。在连接完成至少 1 个请求后,您似乎无法更改连接的请求方法。

@connection = Faraday.new(url: 'http://localhost:3000') do |faraday|
  faraday.request :url_encoded
  faraday.use :cookie_jar
  faraday.adapter Faraday.default_adapter
end

@connection.get '/something'

# try to change to :multipart
@connection.request :multipart # => Faraday::RackBuilder::StackLocked: can't modify middleware stack after making a request
Run Code Online (Sandbox Code Playgroud)

它似乎不允许您在提出请求后进行切换。我知道您可以通过传递一个块来对每个请求本身的请求进行一些修改,但我似乎找不到:multipart在其中修改以切换到的位置。

提前致谢。

ruby faraday

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

FFI/MemoryPointer内存分配

我肯定错过了什么.我一直在读FFI,似乎无法得到明确的答案.假设我有以下C++函数:

extern "C" {
  int ReturnAnArrayOfStrings(const char* arrayOfStrings[]) {
    if( NULL == arrayOfStrings ) return someCharList.size();

    for(auto iter = someCharList.begin(), auto index = 0; iter != someCharList.end(); ++iter, ++index) {
        char* allocatedHere = new char[strlen(*iter)]; // note that this is not freed
        strcpy_s(allocatedHere, strlen(*iter), *iter);
        arrayOfStrings[index] = allocatedHere;
    }

    return someCharList.size();
  }
}
Run Code Online (Sandbox Code Playgroud)

据我所知,如果从FFI使用此功能,您只需执行以下操作:

module SomeDll
  extend FFI::Library
  ffi_lib 'SomeDll.dll'
  attach_function :get_strings, :ReturnAnArrayOfStrings, [:pointer], :int
end

include SomeDll
pointer = FFI::MemoryPointer.new :pointer, get_strings(nil)  # how many strings are there?
get_strings …
Run Code Online (Sandbox Code Playgroud)

c++ ruby windows ffi

4
推荐指数
1
解决办法
1132
查看次数

标签 统计

ruby ×2

c++ ×1

faraday ×1

ffi ×1

homebrew ×1

macos ×1

macvim ×1

vim ×1

windows ×1