我想将所有的dotfiles存储在GitHub上,包括.gitconfig,它要求我在.gitconfig中隐藏GitHub令牌.
为此,我有一个".gitconfig-hidden-token"文件,这是我打算编辑的文件并放在git下隐藏令牌:
...
[github]
user = giuliop
token = --hidden--
...
Run Code Online (Sandbox Code Playgroud)
如果我修改".gitconfig-hidden-token"文件来创建".gitconfig"文件,我需要启动一个shell脚本:
cp .gitconfig .gitconfig.backup
sed 's/--hidden--/123456789/' .gitconfig-hidden-token > .gitconfig
Run Code Online (Sandbox Code Playgroud)
缺点是每次修改文件时都需要手动启动脚本.有没有更好的,完全自动化的方法来做到这一点?
说我有以下代码:
<p>
Hello
</p>
Run Code Online (Sandbox Code Playgroud)
我想成功
<p>Hello</p>
Run Code Online (Sandbox Code Playgroud)
我想将光标置于第1行末尾的正常模式,所以在'>'上有一个命令删除所有空格直到下一个字符.我能想到的最接近的是动作
d/Hello
Run Code Online (Sandbox Code Playgroud)
删除所有内容直到Hello,但问题是它还删除了光标下的字符('>')所以我最终得到
<pHello
</p>
Run Code Online (Sandbox Code Playgroud)
你会怎么做?
我有一个nginx + uwsgi网站(使用Flask进行动态python页面).我想直接通过nginx提供静态的主页,并将其他所有内容路由到uwsgi.
以下nginx配置指令可以很好地通过nginx为主页提供服务,并将对mysite.com/login的调用重定向到uwsgi:
location / {
root /var/www/mysite.com/static;
index index.html index.htm;
}
location /login {
include uwsgi_params;
uwsgi_pass 127.0.0.1:3031;
}
Run Code Online (Sandbox Code Playgroud)
但是我找不到一种方法来概括第二个指令来捕获对mysite.com/something的所有调用并将它们引导到uwsgi.
我尝试了以下哪些不起作用(除了调用mysite.com之外,获取404除外):
location / {
root /var/www/mysite.com/static;
index index.html index.htm;
}
location /* {
include uwsgi_params;
uwsgi_pass 127.0.0.1:3031;
}
Run Code Online (Sandbox Code Playgroud)
有什么建议?
使用案例:
您的MacVim窗口中显示2-3个文件.按ctrl + Q键,MacVim关闭.当您重新启动MacVim时,它会打开,显示您关闭它时的相同文件.
你怎么能这样做?
- 答案
我将以下内容添加到我的.vmirc中
"save and close all files and save global session
nnoremap <leader>q :mksession! ~/.vim/Session.vim<CR>:wqa<CR>
"close all files without saving and save global session
nnoremap <leader>www :mksession! ~/.vim/Session.vim<CR>:qa!<CR>
function! RestoreSession()
if argc() == 0 "vim called without arguments
execute 'source ~/.vim/Session.vim'
end
endfunction
autocmd VimEnter * call RestoreSession()
Run Code Online (Sandbox Code Playgroud)
有了这个我几乎有我想要的确切行为,唯一的小麻烦是我仍然需要按下命令-Q但是那是MacOs,而不是vim ....
我已经从使用 MacVim 转向在 MacOs Lion 的终端中使用 vim,并且我意识到:
has('macunix')
has('mac')
Run Code Online (Sandbox Code Playgroud)
返回 false 而不是 true (它们在 MacVim 中工作得很好)。这是一个问题,因为我在 Mac 和 Archlinux linode 上使用相同的 .vimrc,并且需要根据操作系统设置特定选项。
到目前为止,我可以挖掘的唯一解决方案是使用 hostname() 函数来获取计算机名称并将其映射到特定操作系统上,但它不如能够检查操作系统本身那么优雅。
有人知道为什么 has('...') 命令不能按记录工作吗?
我试图在vim中实现绝对和可变行编号之间的切换,我想做一个单行而不是编写if函数.
我目前的代码是:
nnoremap <F4> :( &rnu == 1 ? "set nu" : "set rnu" )<CR>
Run Code Online (Sandbox Code Playgroud)
这不起作用; 谁知道我怎么能让它运作?
我有一些函数接收var作为参数,我想以标准方式标记参数名称,以表示它是一个var(所以你记得使用@来获取它的值).
是否有一些命名约定?你还会使用*......*的东西吗?
(如果你想知道用例正在实现一个简单的Scheme解释器作为eval函数,我在emacs/cider中反复调用,所以我需要在整个repl交互中保持"环境")
编辑 - 代码示例
;; given a scheme expression exp and an environment env
;; evaluate it based on the expression type
;; (note that env is a var)
(defmulti eval-exp (fn [exp env] (-dispatch exp)))
;; method to evaluate variables
;; (note that env is a var)
(defmethod eval-exp :variable [exp env]
(lookup-variable-value exp @env))
;; helper function to lookup var in environment env
;; (note that env is a value)
(defn lookup-variable-value [var env]
(if (= …Run Code Online (Sandbox Code Playgroud)