Emacs有一个有用的transpose-words
命令,可以让光标前面的单词与光标后的单词交换,保留标点符号.
例如,' stack |overflow
'+ Mt =' overflow stack|
'(' |
'是光标位置).
<a>|<p>
成为<p><a|>
.
是否有可能在Vim中模仿它?我知道我可以使用dwwP
,但它不适用于标点符号.
更新:不,dwwP
是真的没办法了.想像:
SOME_BOOST_PP_BLACK_MAGIC( (a)(b)(c) )
// with cursor here ^
Run Code Online (Sandbox Code Playgroud)
Emacs的Mt会交换,b
并c
导致(a)(c)(b)
.
有效的是/\w
yiwNviwpnviwgp
.但它败坏""
和"/
.有更清洁的解决方案吗?
Update²:
:nmap gn :s,\v(\w+)(\W*%#\W*)(\w+),\3\2\1\r,<CR>kgJ:nohl<CR>
Run Code Online (Sandbox Code Playgroud)
不完美,但有效.
感谢Camflan将该%#
项目引起我的注意.当然,它都在wiki上,但我没有意识到它可以解决精确问题(Emacs完全正确)重复transpose-words
功能.
我有表格的网址http://domain/image/?uuid?/42x42/some_name.png
.Web服务器(nginx)配置为查找文件/some/path/image/?uuid?/thumbnail_42x42.png
,如果它不存在,则将URL发送到后端(Django via mod_wsgi),然后生成缩略图.然后后端发出302重定向到客户端请求的完全相同的URL,并认为在第二次请求时服务器将注意到缩略图文件并直接发送它.
问题是,这适用于所有浏览器吗?到目前为止,测试没有显示任何问题,但我能确定所有用户代理都会按预期解释这个吗?
更新:让我澄清意图.目前的工作原理如下:
让后端服务于新创建的映像更糟糕的原因有两个:
所以我让后端工作的时间最短.
Update²:我非常感谢一些RFC参考或者有很多浏览器经验的人的意见.所有这些肯定的答案都令人愉快,但它们看起来毫无根据.
以下代码调用 operator <=> 两次,参数颠倒。但为什么?
GCC 10.2 和 clang 12 似乎都在使用 libstdc++-10,其 <tuple> 确实提供了运算符 <=>,因此它似乎不是缺少标准库支持的情况,我的代码必须不正确。如何解决?
#include <tuple>
#include <compare>
#include <iostream>
struct X {
int i;
auto operator <=>(X const& other) const {
std::cout << this << " <=> " << &other << std::endl;
return i <=> other.i;
}
};
int main() {
std::tuple{X{42}} <=> std::tuple{X{42}};
}
Run Code Online (Sandbox Code Playgroud) 在T E X中,如何将字符串拆分\mana{X1 2W/UB R /G}
成部分并将它们提供给另一个宏(在这种情况下,通过类似的方式替换宏调用\m{X}\m{12}\m{W/U}\m{B}\m{R/G}
),通过非常简单的规则进行分组,即:a)连续数字形成一个组,b)斜线创建一组两个附近的字符,c)空格是否被完全剥离?
我尝试了这个substr
包,但它没有太大帮助,只允许找到某些子串.手写循环如
\def\lcpass#1.{}
\def\lcloop#1#2.{%
\ifempty{#2}%
#1%
\let\continue=\lcpass%
\else%
\let\continue=\lcloop%
\fi%
\continue#2.}
\def\lastchar#1{\lcloop#1.} % returns the last character of a string
Run Code Online (Sandbox Code Playgroud)
当字符串以空格结尾时无法工作,我也没有成功\futurelet
.
一般来说,如何处理在T E X 中解析字符串的任务?例如,texmate
包允许人们编写类似的内容|1 e4 e5 Nf3 Nc6|
并自动绘制相应的国际象棋位置.它是如何做到的?关于字符串中的字符循环和其他类似的T E X黑客,我能读到什么?
有没有之间的任何实际的差别list(iterable)
,并[*iterable]
在支持后者的Python版本?