在vim中,一个人如何从系统剪贴板而不是纯文本中粘贴样式文本?
例如,从web浏览器和粘贴在复制到字处理器通常导致样式的文本,包括基本格式(粗体)和链接被粘贴.一个人如何以相同的方式从浏览器复制,但将文本的原始HTML表示粘贴到vim?
我正在为iOS开发一个应用程序> 4.3.
我正在寻找有关在视图或应用程序之间处理和粘贴文本的最佳实践.
谁能告诉我如何避免因将图像粘贴到UITextView而导致崩溃?
我的应用程序中有UITextView,允许对属性文本进行一些基本编辑(iOS 6).用户发现他们可以从网页复制文本和图像的组合,然后切换到我的应用程序并使用UITextView菜单>粘贴命令它将使应用程序崩溃.我可以重现它,但我很难过该怎么做.崩溃的日志如下所示:
*** Assertion failure in -[NSHTMLReader _addAttachmentForElement:URL:needsParagraph:usePlaceholder:], /SourceCache/UIFoundation_Sim/UIFoundation-78/UIFoundation/TextSystem/NSHTMLReader.m:1478
*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Unable to find missing_image.tiff!'
Run Code Online (Sandbox Code Playgroud)
当他们在另一个应用程序中使用copy命令时,我无法阻止用户选择图像.我也不想在我的应用程序中禁止粘贴.
问题:当用户从其他网站复制一堆代码并将其粘贴到CKEditor中时,它包含一系列内联样式,这些样式指的是从中复制的网站上的内容样式.当粘贴的内容随后保存并显示在我的网站上时,它不会使用我的样式,而是复制的内联冲突内容.
我已经浏览了CKEditor文档,说实话我没有找到文档来缩小到我正在寻找的内容.有一个粘贴功能可以删除格式,但这是菜单中的一个可选按钮,而大多数用户只会发布到主要的大区域,所以它几乎没有价值.
主要问题:有没有办法在粘贴时设置CKEditor去除格式?
我在OSX中使用Vim时遇到了一些问题:每当我在Vim和COMMAND + P之外复制粘贴文本时,复制文本的一些字符就会被删除.
复制:Function(){......+20行
PASTE n(){.....+ 20行)
我知道Vim有很多细节......我在Ubuntu设置上使用它没有任何问题.但我还不是很专业,我觉得这是mac用户会遇到的一个基本问题.但是,我正在浏览论坛并搜索它,我似乎无法找到答案.
非常感谢任何帮助.
编辑:我知道这是一个非常基本的问题,有人可能会问,如果他们不了解Vi插入模式的基础知识,并且不喜欢运行Vimtutor.对我来说这不是问题; 我实际上已经在Vim工作了一段时间,但是这个默认行为早就改变了(所以我从未注意到它).
在考虑插入模式如何工作的基础知识之前,我肯定会浪费很多时间,所以真的非常感谢你的真棒,及时的回复!我希望这个帖子对其他一些人来说很有用,他们可能不太可能从互联网上取下一些"样板".vimrc,或者已经习惯了其他人配置的Vim ......因为Stack Overflow的意思不是向人们解释他们应该在10秒钟内从手册或其他内容中选择的东西.
我的应用程序允许用户通过单击一些格式按钮来格式化UITextView中的文本,这些按钮将属性应用于文本视图的attributedText属性.我想允许用户从一个UITextView复制他们的格式化文本,并使用标准剪贴板和标准剪切/复制/粘贴菜单将其粘贴到另一个.
目前,如果我从UITextView复制格式化文本并将其粘贴到Mail应用程序中的新邮件中,则格式化将保留 - 因此格式化文本的复制将自动进行.但是,如果我将格式化文本粘贴到我的应用程序中的另一个UITextView中,则仅显示纯文本.
通过遵循iOS文本编程指南中的"粘贴选择"部分,我能够覆盖UITextView的粘贴方法并拦截粘贴的内容:
- (void)paste:(id)sender {
UIPasteboard *pasteboard = [UIPasteboard generalPasteboard];
NSLog(@"types available: %@", [pasteboard pasteboardTypes]);
for (NSString *type in [pasteboard pasteboardTypes]) {
NSLog(@"type %@ (%@): %@", type, NSStringFromClass([[pasteboard valueForPasteboardType:type] class]), [pasteboard valueForPasteboardType:type]);
}
}
Run Code Online (Sandbox Code Playgroud)
这告诉我,粘贴板包含以下格式的内容:com.apple.rtfd,public.rtf,public.text和"Apple Web Archive粘贴板类型".文本的值是纯文本字符串,rtf的值是RTF字符串,两种Apple格式的值是NSData.
这就是我被困住的地方.如何将其中一个项目从粘贴板数据转换为为UITextView设置的属性字符串?
或者更好的是,有没有办法配置UITextView在粘贴时自动接受格式化文本,就像它在复制时自动提供格式化文本一样?
我正在开发一款可让人们复制和粘贴图片的应用.图像复制如下:
NSString *path = [[NSBundle mainBundle] pathForResource:@"circle" ofType:@"png"];
UIPasteboard *pasteboard = [UIPasteboard generalPasteboard];
NSData *data = [NSData dataWithContentsOfFile:path];
[pasteboard setData:data forPasteboardType:@"public.png"];
Run Code Online (Sandbox Code Playgroud)
然后粘贴在Notes应用程序中,它工作正常.但是在消息应用程序中,它会裁剪图像的右侧.有办法防止这种情况吗?


如果我在其他程序上使用Cc(比如说终端或网络浏览器)然后将Cv转换为Emacs,则autopair有时会创建我不想要的额外括号或括号.当我将外部文本复制粘贴到Emacs时,如何限制这种情况发生?我的init.el文件中的相关行是:
(require 'autopair)
(autopair-global-mode 1)
(setq autopair-autowrap t)
Run Code Online (Sandbox Code Playgroud) 在visual studio中有一个设置,使编辑器知道如果我不小心点击cntrl c但是我在空行,它将不会复制空白区域.
此功能非常有用,经过一些谷歌搜索,我不相信Android Studio中存在此功能.
但是,我想让其他人确保此功能不存在,因为它非常有用.
我试图将一些elisp代码执行结果复制到我的剪贴板.我正在寻找可以像这样使用的东西.
(defun generate-string-to-my-clipboard ()
(magic-function (foo-generate-string)))
Run Code Online (Sandbox Code Playgroud)
执行后,我可以在我的系统中粘贴(foo-generate-string)的结果
我已经看过使用kill-region或的解决方案clipboard-kill-ring-save,但它需要一个区域或缓冲区中的某个字符串来选择它.它可以工作,但感觉有点牵强.