【发布时间】:2022-01-18 18:54:44
【问题描述】:
例如:
one
two
three
four
five
six
seven
eight
nine
ten
eleven
twelve
到
one two three
four five six
seven eight nine
ten eleven twelve
我不知道怎么做,只能在 vscode 上反之。
【问题讨论】:
标签: visual-studio-code notepad++
例如:
one
two
three
four
five
six
seven
eight
nine
ten
eleven
twelve
到
one two three
four five six
seven eight nine
ten eleven twelve
我不知道怎么做,只能在 vscode 上反之。
【问题讨论】:
标签: visual-studio-code notepad++
不是 VS Code,但你可以使用这个 sn-p:
如果您再次需要,只需将此答案添加为书签(或将 sn-p 信息复制并粘贴到您设备上的 HTML 文件中)。另外,我认为“复制到剪贴板”按钮不起作用,因为 sn-p 在跨域
iframe中运行,但它应该在同源上下文中工作。
function splitWordsPerLine (text, wpl = 1) {
let result = '';
wpl = wpl < 1 ? 1 : wpl;
let count = wpl;
for (const word of text.split(/\s+/)) {
count -= 1;
let line = word;
if (count === 0) {
line += '\n';
count = wpl;
}
else line += ' ';
result += line;
}
return result.trim();
}
function getWPL (numberInput) {
if (!numberInput) return 1;
const wpl = parseInt(numberInput.value, 10);
return Number.isNaN(wpl) ? 1 : wpl;
}
function handleInput (event) {
const wpl = getWPL(event.target);
const textInput = document.getElementById('text');
if (!textInput) return;
textInput.value = splitWordsPerLine(textInput.value, wpl);
}
async function handleClick (event) {
let message = 'Copying failed ?';
const textInput = document.getElementById('text');
try {
if (!textInput) throw new Error('No input found');
await navigator.clipboard.writeText(textInput.value);
message = 'Text copied ✅';
}
catch {}
textInput?.select();
const setText = str => event.target.textContent = str;
setText(message);
setTimeout(() => setText('Copy to clipboard'), 1500);
}
function handlePaste (event) {
const text = event.clipboardData?.getData('text');
if (!text) return;
const wpl = getWPL(document.getElementById('wpl'));
event.target.value = splitWordsPerLine(text, wpl);
event.preventDefault();
}
document.getElementById('wpl')?.addEventListener('input', handleInput);
document.getElementById('copy')?.addEventListener('click', handleClick);
document.getElementById('text')?.addEventListener('paste', handlePaste);
html {
box-sizing: border-box;
height: 100%;
}
*, *:before, *:after {
box-sizing: inherit;
}
body {
font-family: sans-serif;
height: 100%;
margin: 0;
padding: 1rem;
}
.container {
display: flex;
gap: 0.5rem;
}
.container.vertical {
flex-direction: column;
height: 100%;
}
#copy {
background-color: black;
border: 0;
color: white;
display: inline-flex;
align-items: center;
font-size: 1rem;
padding: 0.5rem;
}
#wpl, #text {
border: 1px solid;
font-family: monospace;
padding: 0.5rem;
}
#wpl {
font-size: 1.5rem;
width: 5rem;
}
#text {
font-size: 1rem;
height: 100%;
width: 100%;
resize: none;
white-space: pre;
}
<div class="container vertical">
<div class="container">
<input id="wpl" type="number" min="1" step="1" value="1" />
<button id="copy">Copy to clipboard</button>
</div>
<textarea id="text" rows="0" cols="0" placeholder="Select number of words per line, then paste your text here"></textarea>
</div>
【讨论】:
您可以使用扩展名Select By 和命令selectby.lineNr
c+3k 每 3 行放置一个光标c+3k && n<50 来限制使用结束行【讨论】: